2023-11-12 18:21:13 +01:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "57a2b335-a7f3-4ace-a2d8-52219c4febc5",
"metadata": {},
"outputs": [],
"source": [
"include(\"thinQR.jl\")\n",
"using .thinQR"
]
},
2023-11-20 15:28:24 +01:00
{
"cell_type": "code",
"execution_count": 2,
"id": "8b3d71f8-2f4f-44f0-8c97-dd9d78706163",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"x = [-1.5012955407352218e-16, 0.5000000000000001]\n"
]
},
{
"data": {
"text/plain": [
"3-element Vector{Float64}:\n",
" 0.9999999999999991\n",
" 1.9999999999999996\n",
" 2.9999999999999996"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A = [1. 2; 3. 4.; 5. 6.]\n",
"A = qrhous!(A)\n",
"b = [1., 2, 3]\n",
"x = A \\ b\n",
"@show x\n",
"A * x"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "c7f143dc-a80d-4326-83c1-31dac3a6e3e0",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"x = [-1.0000000000000033, 1.0000000000000002, 4.0792198665315527e-16]\n"
]
},
{
"data": {
"text/plain": [
"3-element Vector{Float64}:\n",
" 1.0000000000000009\n",
" 2.000000000000001\n",
" 3.000000000000001"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A = [1. 2. 3.; 1. 3. 6.; 1. 4. 5.]\n",
"A = qrhous!(A)\n",
"b = [1., 2, 3]\n",
"x = A \\ b\n",
"@show x\n",
"A * x"
]
},
2023-11-12 18:21:13 +01:00
{
"cell_type": "code",
"execution_count": 2,
2023-11-12 21:16:54 +01:00
"id": "afd34800-7b9a-4006-9849-071fa197d962",
2023-11-12 18:21:13 +01:00
"metadata": {},
"outputs": [
2023-11-12 21:16:54 +01:00
{
"name": "stdout",
"output_type": "stream",
"text": [
"x = [5.810770900369532e-16, 0.4999999999999994]\n"
]
},
2023-11-12 18:21:13 +01:00
{
"data": {
"text/plain": [
"3-element Vector{Float64}:\n",
2023-11-12 21:16:54 +01:00
" 0.9999999999999993\n",
" 1.9999999999999993\n",
" 2.999999999999999"
2023-11-12 18:21:13 +01:00
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
2023-11-12 21:16:54 +01:00
"using LinearAlgebra: \\, qr\n",
"A = [1. 2.; 3. 4.; 5. 6.]\n",
"(Q, R) = qr(A)\n",
"x = A \\ [1., 2, 3]\n",
"@show x\n",
"A * x"
2023-11-12 18:21:13 +01:00
]
},
{
"cell_type": "code",
2023-11-20 15:28:24 +01:00
"execution_count": 7,
"id": "d7d24c53-5485-4f8a-bea3-3fe4ec1f456b",
"metadata": {},
"outputs": [],
"source": [
"using BenchmarkTools\n",
"A=randn(10000, 100)\n",
"a=deepcopy(A)\n",
"y=randn(10000);"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "652fe3c4-6b44-45e1-9bdc-5d7d41b55c6a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"BenchmarkTools.Trial: 11 samples with 1 evaluation.\n",
" Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m458.557 ms\u001b[22m\u001b[39m … \u001b[35m496.613 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m18.11% … 20.40%\n",
" Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m475.247 ms \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m20.13%\n",
" Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ \u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m475.772 ms\u001b[22m\u001b[39m ± \u001b[32m 8.688 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ \u001b[90m): \u001b[39m19.88% ± 0.73%\n",
"\n",
" \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m█\u001b[39m \u001b[34m \u001b[39m\u001b[39m▃\u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \n",
" \u001b[39m▇\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m█\u001b[39m▇\u001b[34m▇\u001b[39m\u001b[39m█\u001b[32m▁\u001b[39m\u001b[39m▇\u001b[39m▁\u001b[39m▁\u001b[39m▇\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▇\u001b[39m \u001b[39m▁\n",
" 459 ms\u001b[90m Histogram: frequency by time\u001b[39m 497 ms \u001b[0m\u001b[1m<\u001b[22m\n",
"\n",
" Memory estimate\u001b[90m: \u001b[39m\u001b[33m1.54 GiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m4804\u001b[39m."
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A = deepcopy(a)\n",
"@benchmark begin x = qrhous!($A) \\ $y; end"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "c8e93f5c-b32c-4334-bd97-9779360d5d81",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"BenchmarkTools.Trial: 77 samples with 1 evaluation.\n",
" Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m56.414 ms\u001b[22m\u001b[39m … \u001b[35m98.485 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.00% … 0.00%\n",
" Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m62.403 ms \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.00%\n",
" Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ \u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m65.010 ms\u001b[22m\u001b[39m ± \u001b[32m 8.780 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ \u001b[90m): \u001b[39m0.75% ± 1.84%\n",
"\n",
" \u001b[39m \u001b[39m█\u001b[39m▃\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[34m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m▄\u001b[39m▂\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \n",
" \u001b[39m▆\u001b[39m█\u001b[39m█\u001b[39m▃\u001b[39m▃\u001b[39m▅\u001b[39m▅\u001b[39m▃\u001b[39m▃\u001b[39m▁\u001b[39m▃\u001b[34m▃\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[32m▁\u001b[39m\u001b[39m▃\u001b[39m▁\u001b[39m█\u001b[39m█\u001b[39m▃\u001b[39m▁\u001b[39m▁\u001b[39m▄\u001b[39m▃\u001b[39m▃\u001b[39m▃\u001b[39m▃\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▃\u001b[39m▃\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▅\u001b[39m▃\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▄\u001b[39m▁\u001b[39m▁\u001b[39m▃\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▃\u001b[39m▃\u001b[39m \u001b[39m▁\n",
" 56.4 ms\u001b[90m Histogram: frequency by time\u001b[39m 88 ms \u001b[0m\u001b[1m<\u001b[22m\n",
"\n",
" Memory estimate\u001b[90m: \u001b[39m\u001b[33m7.92 MiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m624\u001b[39m."
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"using LinearAlgebra\n",
"\n",
"@benchmark begin x = $a \\ $y; end"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "43d521a7-6bf4-45c6-abb6-0a07a666570d",
"metadata": {},
"outputs": [],
"source": [
"using Profile, ProfileSVG"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "9443e1c4-03dd-46cb-a8ea-652c6862dbcf",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<svg version=\"1.1\" width=\"960\" height=\"436\" viewBox=\"0 0 960 436\"\n",
" xmlns=\"http://www.w3.org/2000/svg\" id=\"fig-7602c8b896fb47fdb5e2542ca3bfb867\">\n",
"<defs>\n",
" <clipPath id=\"fig-7602c8b896fb47fdb5e2542ca3bfb867-clip\">\n",
" <rect x=\"0\" y=\"0\" width=\"960\" height=\"436\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<style type=\"text/css\">\n",
" #fig-7602c8b896fb47fdb5e2542ca3bfb867 text {\n",
" pointer-events: none;\n",
" font-family: inherit;\n",
" font-size: 12px;\n",
" fill: #000000;\n",
" }\n",
" text#fig-7602c8b896fb47fdb5e2542ca3bfb867-caption {\n",
" font-size: 16.8px;\n",
" fill: #000000;\n",
" text-anchor: middle;\n",
" }\n",
" #fig-7602c8b896fb47fdb5e2542ca3bfb867-bg {\n",
" fill: #FFFFFF;\n",
" }\n",
" #fig-7602c8b896fb47fdb5e2542ca3bfb867-viewport rect, #fig-7602c8b896fb47fdb5e2542ca3bfb867-viewport path {\n",
" vector-effect: non-scaling-stroke;\n",
" fill-opacity: 1;\n",
" }\n",
" #fig-7602c8b896fb47fdb5e2542ca3bfb867-viewport text {\n",
" stroke: #000000;\n",
" stroke-width: 0;\n",
" stroke-opacity: 0.35;\n",
" }\n",
" #fig-7602c8b896fb47fdb5e2542ca3bfb867-viewport rect:hover, #fig-7602c8b896fb47fdb5e2542ca3bfb867-viewport path:hover {\n",
" fill-opacity: 0.75;\n",
" stroke: #000000;\n",
" stroke-width: 0.5;\n",
" }\n",
" #fig-7602c8b896fb47fdb5e2542ca3bfb867-viewport + rect {\n",
" fill: #FFFFFF;\n",
" opacity: 0.8;\n",
" }\n",
" text#fig-7602c8b896fb47fdb5e2542ca3bfb867-details{\n",
" fill: #000000;\n",
" }\n",
"</style>\n",
"<g id=\"fig-7602c8b896fb47fdb5e2542ca3bfb867-frame\" clip-path=\"url(#fig-7602c8b896fb47fdb5e2542ca3bfb867-clip)\">\n",
"<rect id=\"fig-7602c8b896fb47fdb5e2542ca3bfb867-bg\" x=\"0\" y=\"0\" width=\"960\" height=\"436\"/>\n",
"<text id=\"fig-7602c8b896fb47fdb5e2542ca3bfb867-caption\" x=\"480\" y=\"24\">Profile results</text>\n",
"<g id=\"fig-7602c8b896fb47fdb5e2542ca3bfb867-viewport\" transform=\"scale(1)\">\n",
"<rect x=\"10\" y=\"383\" width=\"940.31\" height=\"15\" rx=\"2\" fill=\"#F3004D\" data-dinfo=\"\"/>\n",
"<text x=\"10\" dx=\"4\" y=\"394.25\"> in :-1</text>\n",
"<rect x=\"14.92\" y=\"368\" width=\"743.39\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"379.25\">#15 in task.jl:514</text>\n",
"<rect x=\"14.92\" y=\"353\" width=\"743.39\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"/Users/elvis/.julia/packages/IJulia/Vo51o/src/\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"364.25\">eventloop in eventloop.jl:8</text>\n",
"<rect x=\"14.92\" y=\"338\" width=\"743.39\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"349.25\">invokelatest in essentials.jl:816</text>\n",
"<rect x=\"14.92\" y=\"323\" width=\"743.39\" height=\"15\" rx=\"2\" fill=\"#F3004D\" data-dinfo=\"./\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"334.25\">#invokelatest#2 in essentials.jl:819</text>\n",
"<rect x=\"14.92\" y=\"308\" width=\"743.39\" height=\"15\" rx=\"2\" fill=\"#D42137\" data-dinfo=\"/Users/elvis/.julia/packages/IJulia/Vo51o/src/\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"319.25\">execute_request in execute_request.jl:67</text>\n",
"<rect x=\"14.92\" y=\"293\" width=\"743.39\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"/Users/elvis/.julia/packages/SoftGlobalScope/u4UzH/src/\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"304.25\">softscope_include_string in SoftGlobalScope.jl:65</text>\n",
"<rect x=\"14.92\" y=\"278\" width=\"743.39\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"289.25\">include_string in loading.jl:1903</text>\n",
"<rect x=\"14.92\" y=\"263\" width=\"743.39\" height=\"15\" rx=\"2\" fill=\"#F3004D\" data-dinfo=\"./\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"274.25\">eval in boot.jl:370</text>\n",
"<rect x=\"14.92\" y=\"248\" width=\"22.16\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"/Users/elvis/Documents/University/Corsi/Computational Mathematics for Learning and Data Analysis/CMLDA/project/\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"259.25\">\\ in thinQR.jl:109</text>\n",
"<rect x=\"14.92\" y=\"233\" width=\"22.16\" height=\"15\" rx=\"2\" fill=\"#F3004D\" data-dinfo=\"/Users/elvis/Documents/University/Corsi/Computational Mathematics for Learning and Data Analysis/CMLDA/project/\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"244.25\">qyhoust in thinQR.jl:58</text>\n",
"<rect x=\"17.38\" y=\"218\" width=\"17.24\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"17.38\" dx=\"4\" y=\"229.25\">getindex in abstractarray.jl:1296</text>\n",
"<rect x=\"17.38\" y=\"203\" width=\"17.24\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"17.38\" dx=\"4\" y=\"214.25\">_getindex in multidimensional.jl:861</text>\n",
"<rect x=\"17.38\" y=\"188\" width=\"4.93\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"17.38\" dx=\"4\" y=\"199.25\">_unsafe_getindex in multidimensional.jl:873</text>\n",
"<rect x=\"17.38\" y=\"173\" width=\"4.93\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"17.38\" dx=\"4\" y=\"184.25\">similar in abstractarray.jl:838</text>\n",
"<rect x=\"17.38\" y=\"158\" width=\"4.93\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"17.38\" dx=\"4\" y=\"169.25\">similar in array.jl:374</text>\n",
"<rect x=\"17.38\" y=\"143\" width=\"4.93\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"17.38\" dx=\"4\" y=\"154.25\">Array in boot.jl:486</text>\n",
"<rect x=\"17.38\" y=\"128\" width=\"4.93\" height=\"15\" rx=\"2\" fill=\"#F6A60A\" data-dinfo=\"./\"/>\n",
"<text x=\"17.38\" dx=\"4\" y=\"139.25\">Array in boot.jl:477</text>\n",
"<rect x=\"22.31\" y=\"188\" width=\"12.31\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"22.31\" dx=\"4\" y=\"199.25\">_unsafe_getindex in multidimensional.jl:875</text>\n",
"<rect x=\"22.31\" y=\"173\" width=\"12.31\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"22.31\" dx=\"4\" y=\"184.25\">_unsafe_getindex! in multidimensional.jl:884</text>\n",
"<rect x=\"22.31\" y=\"158\" width=\"12.31\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"22.31\" dx=\"4\" y=\"169.25\">macro expansion in cartesian.jl:64</text>\n",
"<rect x=\"22.31\" y=\"143\" width=\"12.31\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"22.31\" dx=\"4\" y=\"154.25\">macro expansion in multidimensional.jl:889</text>\n",
"<rect x=\"22.31\" y=\"128\" width=\"12.31\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"22.31\" dx=\"4\" y=\"139.25\">setindex! in array.jl:969</text>\n",
"<rect x=\"34.62\" y=\"218\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"34.62\" dx=\"4\" y=\"229.25\">- in arraymath.jl:8</text>\n",
"<rect x=\"34.62\" y=\"203\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"34.62\" dx=\"4\" y=\"214.25\">broadcast_preserving_zero_d in broadcast.jl:862</text>\n",
"<rect x=\"34.62\" y=\"188\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"34.62\" dx=\"4\" y=\"199.25\">materialize in broadcast.jl:873</text>\n",
"<rect x=\"34.62\" y=\"173\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"34.62\" dx=\"4\" y=\"184.25\">copy in broadcast.jl:898</text>\n",
"<rect x=\"34.62\" y=\"158\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"34.62\" dx=\"4\" y=\"169.25\">copyto! in broadcast.jl:926</text>\n",
"<rect x=\"34.62\" y=\"143\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"34.62\" dx=\"4\" y=\"154.25\">copyto! in broadcast.jl:973</text>\n",
"<rect x=\"34.62\" y=\"128\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"34.62\" dx=\"4\" y=\"139.25\">macro expansion in simdloop.jl:78</text>\n",
"<rect x=\"34.62\" y=\"113\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"34.62\" dx=\"4\" y=\"124.25\">+ in int.jl:87</text>\n",
"<rect x=\"37.08\" y=\"248\" width=\"721.23\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"/Users/elvis/Documents/University/Corsi/Computational Mathematics for Learning and Data Analysis/CMLDA/project/\"/>\n",
"<text x=\"37.08\" dx=\"4\" y=\"259.25\">qrhous! in thinQR.jl:32</text>\n",
"<rect x=\"37.08\" y=\"233\" width=\"337.23\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"37.08\" dx=\"4\" y=\"244.25\">getindex in abstractarray.jl:1296</text>\n",
"<rect x=\"37.08\" y=\"218\" width=\"337.23\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"37.08\" dx=\"4\" y=\"229.25\">_getindex in multidimensional.jl:861</text>\n",
"<rect x=\"37.08\" y=\"203\" width=\"39.38\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"37.08\" dx=\"4\" y=\"214.25\">_unsafe_getindex in multidimensional.jl:873</text>\n",
"<rect x=\"37.08\" y=\"188\" width=\"39.38\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"37.08\" dx=\"4\" y=\"199.25\">similar in abstractarray.jl:838</text>\n",
"<rect x=\"37.08\" y=\"173\" width=\"39.38\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"37.08\" dx=\"4\" y=\"184.25\">similar in array.jl:374</text>\n",
"<rect x=\"37.08\" y=\"158\" width=\"39.38\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"37.08\" dx=\"4\" y=\"169.25\">Array in boot.jl:487</text>\n",
"<rect x=\"37.08\" y=\"143\" width=\"39.38\" height=\"15\" rx=\"2\" fill=\"#FFA400\" data-dinfo=\"./\"/>\n",
"<text x=\"37.08\" dx=\"4\" y=\"154.25\">Array in boot.jl:479</text>\n",
"<rect x=\"76.46\" y=\"203\" width=\"4.92\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"76.46\" dx=\"4\" y=\"214.25\">_unsafe_getindex in multidimensional.jl:875</text>\n",
"<rect x=\"76.46\" y=\"188\" width=\"4.92\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"76.46\" dx=\"4\" y=\"199.25\">_unsafe_getindex! in multidimensional.jl:884</text>\n",
"<rect x=\"76.46\" y=\"173\" width=\"4.92\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"76.46\" dx=\"4\" y=\"184.25\">macro expansion in cartesian.jl:64</text>\n",
"<rect x=\"76.46\" y=\"158\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"76.46\" dx=\"4\" y=\"169.25\">macro expansion in multidimensional.jl:887</text>\n",
"<rect x=\"78.92\" y=\"158\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"78.92\" dx=\"4\" y=\"169.25\">macro expansion in multidimensional.jl:889</text>\n",
"<rect x=\"78.92\" y=\"143\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"78.92\" dx=\"4\" y=\"154.25\">setindex! in array.jl:969</text>\n",
"<rect x=\"81.38\" y=\"203\" width=\"292.93\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"81.38\" dx=\"4\" y=\"214.25\">_unsafe_getindex in multidimensional.jl:875</text>\n",
"<rect x=\"81.38\" y=\"188\" width=\"292.93\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"81.38\" dx=\"4\" y=\"199.25\">_unsafe_getindex! in multidimensional.jl:884</text>\n",
"<rect x=\"81.38\" y=\"173\" width=\"292.93\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"81.38\" dx=\"4\" y=\"184.25\">macro expansion in cartesian.jl:64</text>\n",
"<rect x=\"81.38\" y=\"158\" width=\"76.31\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"81.38\" dx=\"4\" y=\"169.25\">macro expansion in multidimensional.jl:887</text>\n",
"<rect x=\"157.69\" y=\"158\" width=\"216.62\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"157.69\" dx=\"4\" y=\"169.25\">macro expansion in multidimensional.jl:889</text>\n",
"<rect x=\"157.69\" y=\"143\" width=\"216.62\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"157.69\" dx=\"4\" y=\"154.25\">setindex! in array.jl:969</text>\n",
"<rect x=\"374.31\" y=\"233\" width=\"93.54\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"374.31\" dx=\"4\" y=\"244.25\">setindex! in abstractarray.jl:1399</text>\n",
"<rect x=\"374.31\" y=\"218\" width=\"93.54\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"374.31\" dx=\"4\" y=\"229.25\">_setindex! in multidimensional.jl:916</text>\n",
"<rect x=\"374.31\" y=\"203\" width=\"93.54\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"374.31\" dx=\"4\" y=\"214.25\">_unsafe_setindex! in multidimensional.jl:927</text>\n",
"<rect x=\"374.31\" y=\"188\" width=\"86.15\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"374.31\" dx=\"4\" y=\"199.25\">macro expansion in cartesian.jl:64</text>\n",
"<rect x=\"374.31\" y=\"173\" width=\"41.84\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"374.31\" dx=\"4\" y=\"184.25\">macro expansion in multidimensional.jl:930</text>\n",
"<rect x=\"416.15\" y=\"173\" width=\"39.39\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"416.15\" dx=\"4\" y=\"184.25\">macro expansion in multidimensional.jl:932</text>\n",
"<rect x=\"416.15\" y=\"158\" width=\"39.39\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"416.15\" dx=\"4\" y=\"169.25\">setindex! in array.jl:971</text>\n",
"<rect x=\"455.54\" y=\"173\" width=\"4.92\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"455.54\" dx=\"4\" y=\"184.25\">macro expansion in multidimensional.jl:933</text>\n",
"<rect x=\"455.54\" y=\"158\" width=\"4.92\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"455.54\" dx=\"4\" y=\"169.25\">iterate in array.jl:893</text>\n",
"<rect x=\"455.54\" y=\"143\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"455.54\" dx=\"4\" y=\"154.25\">- in int.jl:1042</text>\n",
"<rect x=\"455.54\" y=\"128\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"455.54\" dx=\"4\" y=\"139.25\">- in int.jl:86</text>\n",
"<rect x=\"460.46\" y=\"188\" width=\"7.39\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"460.46\" dx=\"4\" y=\"199.25\">macro expansion in cartesian.jl:66</text>\n",
"<rect x=\"460.46\" y=\"173\" width=\"7.39\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"460.46\" dx=\"4\" y=\"184.25\">iterate in range.jl:891</text>\n",
"<rect x=\"460.46\" y=\"158\" width=\"7.39\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"460.46\" dx=\"4\" y=\"169.25\">== in promotion.jl:499</text>\n",
"<rect x=\"467.85\" y=\"233\" width=\"164.92\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"244.25\">- in arraymath.jl:8</text>\n",
"<rect x=\"467.85\" y=\"218\" width=\"164.92\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"229.25\">broadcast_preserving_zero_d in broadcast.jl:862</text>\n",
"<rect x=\"467.85\" y=\"203\" width=\"164.92\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"214.25\">materialize in broadcast.jl:873</text>\n",
"<rect x=\"467.85\" y=\"188\" width=\"164.92\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"199.25\">copy in broadcast.jl:898</text>\n",
"<rect x=\"467.85\" y=\"173\" width=\"140.3\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"184.25\">copyto! in broadcast.jl:926</text>\n",
"<rect x=\"467.85\" y=\"158\" width=\"140.3\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"169.25\">copyto! in broadcast.jl:973</text>\n",
"<rect x=\"467.85\" y=\"143\" width=\"128\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"154.25\">macro expansion in simdloop.jl:77</text>\n",
"<rect x=\"467.85\" y=\"128\" width=\"128\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"139.25\">macro expansion in broadcast.jl:974</text>\n",
"<rect x=\"467.85\" y=\"113\" width=\"54.15\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"124.25\">getindex in broadcast.jl:610</text>\n",
"<rect x=\"467.85\" y=\"98\" width=\"54.15\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"109.25\">_broadcast_getindex in broadcast.jl:655</text>\n",
"<rect x=\"467.85\" y=\"83\" width=\"54.15\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"94.25\">_getindex in broadcast.jl:679</text>\n",
"<rect x=\"467.85\" y=\"68\" width=\"54.15\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"79.25\">_broadcast_getindex in broadcast.jl:649</text>\n",
"<rect x=\"467.85\" y=\"53\" width=\"54.15\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"64.25\">getindex in multidimensional.jl:668</text>\n",
"<rect x=\"467.85\" y=\"38\" width=\"54.15\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"49.25\">getindex in essentials.jl:14</text>\n",
"<rect x=\"522\" y=\"113\" width=\"73.85\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"522\" dx=\"4\" y=\"124.25\">setindex! in multidimensional.jl:670</text>\n",
"<rect x=\"522\" y=\"98\" width=\"73.85\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"522\" dx=\"4\" y=\"109.25\">setindex! in array.jl:971</text>\n",
"<rect x=\"595.85\" y=\"143\" width=\"12.3\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"595.85\" dx=\"4\" y=\"154.25\">macro expansion in simdloop.jl:78</text>\n",
"<rect x=\"595.85\" y=\"128\" width=\"12.3\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"595.85\" dx=\"4\" y=\"139.25\">+ in int.jl:87</text>\n",
"<rect x=\"608.15\" y=\"173\" width=\"24.62\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"608.15\" dx=\"4\" y=\"184.25\">similar in broadcast.jl:211</text>\n",
"<rect x=\"608.15\" y=\"158\" width=\"24.62\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"608.15\" dx=\"4\" y=\"169.25\">similar in broadcast.jl:212</text>\n",
"<rect x=\"608.15\" y=\"143\" width=\"24.62\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"608.15\" dx=\"4\" y=\"154.25\">similar in abstractarray.jl:883</text>\n",
"<rect x=\"608.15\" y=\"128\" width=\"24.62\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"608.15\" dx=\"4\" y=\"139.25\">similar in abstractarray.jl:884</text>\n",
"<rect x=\"608.15\" y=\"113\" width=\"24.62\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"608.15\" dx=\"4\" y=\"124.25\">Array in boot.jl:494</text>\n",
"<rect x=\"608.15\" y=\"98\" width=\"24.62\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"608.15\" dx=\"4\" y=\"109.25\">Array in boot.jl:487</text>\n",
"<rect x=\"608.15\" y=\"83\" width=\"24.62\" height=\"15\" rx=\"2\" fill=\"#FFA400\" data-dinfo=\"./\"/>\n",
"<text x=\"608.15\" dx=\"4\" y=\"94.25\">Array in boot.jl:479</text>\n",
"<rect x=\"632.77\" y=\"233\" width=\"125.54\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"/private/tmp/julia-20231114-6658-1ywjgwz/julia-1.9.4/usr/share/julia/stdlib/v1.9/LinearAlgebra/src/\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"244.25\">* in adjtrans.jl:439</text>\n",
"<rect x=\"632.77\" y=\"218\" width=\"125.54\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"229.25\">broadcast in broadcast.jl:811</text>\n",
"<rect x=\"632.77\" y=\"203\" width=\"125.54\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"214.25\">materialize in broadcast.jl:873</text>\n",
"<rect x=\"632.77\" y=\"188\" width=\"125.54\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"199.25\">copy in broadcast.jl:898</text>\n",
"<rect x=\"632.77\" y=\"173\" width=\"123.08\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"184.25\">copyto! in broadcast.jl:926</text>\n",
"<rect x=\"632.77\" y=\"158\" width=\"123.08\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"169.25\">copyto! in broadcast.jl:973</text>\n",
"<rect x=\"632.77\" y=\"143\" width=\"105.85\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"154.25\">macro expansion in simdloop.jl:77</text>\n",
"<rect x=\"632.77\" y=\"128\" width=\"105.85\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"139.25\">macro expansion in broadcast.jl:974</text>\n",
"<rect x=\"632.77\" y=\"113\" width=\"19.69\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"124.25\">getindex in broadcast.jl:610</text>\n",
"<rect x=\"632.77\" y=\"98\" width=\"19.69\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"109.25\">_broadcast_getindex in broadcast.jl:655</text>\n",
"<rect x=\"632.77\" y=\"83\" width=\"19.69\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"94.25\">_getindex in broadcast.jl:679</text>\n",
"<rect x=\"632.77\" y=\"68\" width=\"19.69\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"79.25\">_broadcast_getindex in broadcast.jl:649</text>\n",
"<rect x=\"632.77\" y=\"53\" width=\"19.69\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"64.25\">getindex in multidimensional.jl:668</text>\n",
"<rect x=\"632.77\" y=\"38\" width=\"19.69\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"49.25\">getindex in essentials.jl:13</text>\n",
"<rect x=\"652.46\" y=\"113\" width=\"86.16\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"652.46\" dx=\"4\" y=\"124.25\">setindex! in multidimensional.jl:670</text>\n",
"<rect x=\"652.46\" y=\"98\" width=\"86.16\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"652.46\" dx=\"4\" y=\"109.25\">setindex! in array.jl:971</text>\n",
"<rect x=\"738.62\" y=\"143\" width=\"17.23\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"738.62\" dx=\"4\" y=\"154.25\">macro expansion in simdloop.jl:78</text>\n",
"<rect x=\"738.62\" y=\"128\" width=\"17.23\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"738.62\" dx=\"4\" y=\"139.25\">+ in int.jl:87</text>\n",
"<rect x=\"755.85\" y=\"173\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"755.85\" dx=\"4\" y=\"184.25\">similar in broadcast.jl:211</text>\n",
"<rect x=\"755.85\" y=\"158\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"755.85\" dx=\"4\" y=\"169.25\">similar in broadcast.jl:212</text>\n",
"<rect x=\"755.85\" y=\"143\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"755.85\" dx=\"4\" y=\"154.25\">similar in abstractarray.jl:883</text>\n",
"<rect x=\"755.85\" y=\"128\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"755.85\" dx=\"4\" y=\"139.25\">similar in abstractarray.jl:884</text>\n",
"<rect x=\"755.85\" y=\"113\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"755.85\" dx=\"4\" y=\"124.25\">Array in boot.jl:494</text>\n",
"<rect x=\"755.85\" y=\"98\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"755.85\" dx=\"4\" y=\"109.25\">Array in boot.jl:487</text>\n",
"<rect x=\"755.85\" y=\"83\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#FFA400\" data-dinfo=\"./\"/>\n",
"<text x=\"755.85\" dx=\"4\" y=\"94.25\">Array in boot.jl:479</text>\n",
"</g></g>\n",
"<script><![CDATA[\n",
"// Snap.svg 0.3.0\n",
"// \n",
"// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n",
"// \n",
"// Licensed under the Apache License, Version 2.0 (the \"License\");\n",
"// you may not use this file except in compliance with the License.\n",
"// You may obtain a copy of the License at\n",
"// \n",
"// http://www.apache.org/licenses/LICENSE-2.0\n",
"// \n",
"// Unless required by applicable law or agreed to in writing, software\n",
"// distributed under the License is distributed on an \"AS IS\" BASIS,\n",
"// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
"// See the License for the specific language governing permissions and\n",
"// limitations under the License.\n",
"// \n",
"// build: 2014-06-03\n",
"!function(a){var b,c,d=\"0.4.2\",e=\"hasOwnProperty\",f=/[\\.\\/]/,g=/\\s*,\\s*/,h=\"*\",i=function(a,b){return a-b},j={n:{}},k=function(){for(var a=0,b=this.length;b>a;a++)if(\"undefined\"!=typeof this[a])return this[a]},l=function(){for(var a=this.length;--a;)if(\"undefined\"!=typeof this[a])return this[a]},m=function(a,d){a=String(a);var e,f=c,g=Array.prototype.slice.call(arguments,2),h=m.listeners(a),j=0,n=[],o={},p=[],q=b;p.firstDefined=k,p.lastDefined=l,b=a,c=0;for(var r=0,s=h.length;s>r;r++)\"zIndex\"in h[r]&&(n.push(h[r].zIndex),h[r].zIndex<0&&(o[h[r].zIndex]=h[r]));for(n.sort(i);n[j]<0;)if(e=o[n[j++] ],p.push(e.apply(d,g)),c)return c=f,p;for(r=0;s>r;r++)if(e=h[r],\"zIndex\"in e)if(e.zIndex==n[j]){if(p.push(e.apply(d,g)),c)break;do if(j++,e=o[n[j] ],e&&p.push(e.apply(d,g)),c)break;while(e)}else o[e.zIndex]=e;else if(p.push(e.apply(d,g)),c)break;return c=f,b=q,p};m._events=j,m.listeners=function(a){var b,c,d,e,g,i,k,l,m=a.split(f),n=j,o=[n],p=[];for(e=0,g=m.length;g>e;e++){for(l=[],i=0,k=o.length;k>i;i++)for(n=o[i].n,c=[n[m[e] ],n[h] ],d=2;d--;)b=c[d],b&&(l.push(b),p=p.concat(b.f||[]));o=l}return p},m.on=function(a,b){if(a=String(a),\"function\"!=typeof b)return function(){};for(var c=a.split(g),d=0,e=c.length;e>d;d++)!function(a){for(var c,d=a.split(f),e=j,g=0,h=d.length;h>g;g++)e=e.n,e=e.hasOwnProperty(d[g])&&e[d[g] ]||(e[d[g] ]={n:{}});for(e.f=e.f||[],g=0,h=e.f.length;h>g;g++)if(e.f[g]==b){c=!0;break}!c&&e.f.push(b)}(c[d]);return function(a){+a==+a&&(b.zIndex=+a)}},m.f=function(a){var b=[].slice.call(arguments,1);return function(){m.apply(null,[a,null].concat(b).concat([].slice.call(arguments,0)))}},m.stop=function(){c=1},m.nt=function(a){return a?new RegExp(\"(?:\\\\.|\\\\/|^)\"+a+\"(?:\\\\.|\\\\/|$)\").test(b):b},m.nts=function(){return b.split(f)},m.off=m.unbind=function(a,b){if(!a)return void(m._events=j={n:{}});var c=a.split(g);if(c.length>1)for(var d=0,i=c.length;i>d;d++)m.off(c[d],b);else{c=a.split(f);var k,l,n,d,i,o,p,q=[j];for(d=0,i=c.length;i>d;d++)for(o=0;o<q.length;o+=n.length-2){if(n=[o,1],k=q[o].n,c[d]!=h)k[c[d] ]&&n.push(k[c[d] ]);else for(l in k)k[e](l)&&n.push(k[l]);q.splice.apply(q,n)}for(d=0,i=q.length;i>d;d++)for(k=q[d];k.n;){if(b){if(k.f){for(o=0,p=k.f.length;p>o;o++)if(k.f[o]==b){k.f.splice(o,1);break}!k.f.length&&delete k.f}for(l in k.n)if(k.n[e](l)&&k.n[l].f){var r=k.n[l].f;for(o=0,p=r.length;p>o;o++)if(r[o]==b){r.splice(o,1);break}!r.length&&delete k.n[l].f}}else{delete k.f;for(l in k.n)k.n[e](l)&&k.n[l].f&&delete k.n[l].f}k=k.n}}},m.once=function(a,b){var c=function(){return m.unbind(a,c),b.apply(this,arguments)};return m.on(a,c)},m.version=d,m.toString=function(){return\"You are running Eve \"+d},\"undefined\"!=typeof module&&module.exports?module.exports=m:\"function\"==typeof define&&define.amd?define(\"eve\",[],function(){return m}):a.eve=m}(this),function(a,b){\"function\"==typeof define&&define.amd?define('ProfileSVG/snap.svg', [\"eve\"],function(c){return b(a,c)}):b(a,a.eve)}(this,function(a,b){var c=function(b){var c={},d=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimationFrame||function(a){setTimeout(a,16)},e=Array.isArray||function(a){return a instanceof Array||\"[object Array]\"==Object.prototype.toString.call(a)},f=0,g=\"M\"+(+new Date).toString(36),h=function(){return g+(f++).toString(36)},i=Date.now||function(){return+new Date},j=function(a){var b=this;if(null==a)return b.s;var c=b.s-a;b.b+=b.dur*c,b.B+=b.dur*c,b.s=a},k=function(a){var b=this;return null==a?b.spd:void(b.spd=a)},l=function(a){var b=this;return null==a?b.dur:(b.s=b.s*a/b.dur,void(b.dur=a))},m=function(){var a=this;delete c[a.id],a.update(),b(\"mina.stop.\"+a.id,a)},n=function(){var a=this;a.pdif||(delete c[a.id],a.update(),a.pdif=a.get()-a.b)},o=function(){var a=this;a.pdif&&(a.b=a.get()-a.pdif,delete a.pdif,c[a.id]=a)},p=function(){var a,b=this;if(e(b.start)){a=[];for(var c=0,d=b.start.length;d>c;c++)a[c]=+b.start[c]+(b.end[c]-b.start[c])*b.easing(b.s)}else a=+b.start+(b.end-b.start)*b.easing(b.s);b.set(a)},q=function()
"}function h(a){var b=e.sqrt(g(a));a[0]&&(a[0]/=b),a[1]&&(a[1]/=b)}c.add=function(a,c,d,e,f,g){var h,i,j,k,l=[[],[],[] ],m=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1] ],n=[[a,d,f],[c,e,g],[0,0,1] ];for(a&&a instanceof b&&(n=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1] ]),h=0;3>h;h++)for(i=0;3>i;i++){for(k=0,j=0;3>j;j++)k+=m[h][j]*n[j][i];l[h][i]=k}return this.a=l[0][0],this.b=l[1][0],this.c=l[0][1],this.d=l[1][1],this.e=l[0][2],this.f=l[1][2],this},c.invert=function(){var a=this,c=a.a*a.d-a.b*a.c;return new b(a.d/c,-a.b/c,-a.c/c,a.a/c,(a.c*a.f-a.d*a.e)/c,(a.b*a.e-a.a*a.f)/c)},c.clone=function(){return new b(this.a,this.b,this.c,this.d,this.e,this.f)},c.translate=function(a,b){return this.add(1,0,0,1,a,b)},c.scale=function(a,b,c,d){return null==b&&(b=a),(c||d)&&this.add(1,0,0,1,c,d),this.add(a,0,0,b,0,0),(c||d)&&this.add(1,0,0,1,-c,-d),this},c.rotate=function(b,c,d){b=a.rad(b),c=c||0,d=d||0;var f=+e.cos(b).toFixed(9),g=+e.sin(b).toFixed(9);return this.add(f,g,-g,f,c,d),this.add(1,0,0,1,-c,-d)},c.x=function(a,b){return a*this.a+b*this.c+this.e},c.y=function(a,b){return a*this.b+b*this.d+this.f},c.get=function(a){return+this[d.fromCharCode(97+a)].toFixed(4)},c.toString=function(){return\"matrix(\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+\")\"},c.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},c.determinant=function(){return this.a*this.d-this.b*this.c},c.split=function(){var b={};b.dx=this.e,b.dy=this.f;var c=[[this.a,this.c],[this.b,this.d] ];b.scalex=e.sqrt(g(c[0])),h(c[0]),b.shear=c[0][0]*c[1][0]+c[0][1]*c[1][1],c[1]=[c[1][0]-c[0][0]*b.shear,c[1][1]-c[0][1]*b.shear],b.scaley=e.sqrt(g(c[1])),h(c[1]),b.shear/=b.scaley,this.determinant()<0&&(b.scalex=-b.scalex);var d=-c[0][1],f=c[1][1];return 0>f?(b.rotate=a.deg(e.acos(f)),0>d&&(b.rotate=360-b.rotate)):b.rotate=a.deg(e.asin(d)),b.isSimple=!(+b.shear.toFixed(9)||b.scalex.toFixed(9)!=b.scaley.toFixed(9)&&b.rotate),b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate,b.noRotation=!+b.shear.toFixed(9)&&!b.rotate,b},c.toTransformString=function(a){var b=a||this.split();return+b.shear.toFixed(9)?\"m\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]:(b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4),(b.dx||b.dy?\"t\"+[+b.dx.toFixed(4),+b.dy.toFixed(4)]:f)+(1!=b.scalex||1!=b.scaley?\"s\"+[b.scalex,b.scaley,0,0]:f)+(b.rotate?\"r\"+[+b.rotate.toFixed(4),0,0]:f))}}(b.prototype),a.Matrix=b,a.matrix=function(a,c,d,e,f,g){return new b(a,c,d,e,f,g)}}),d.plugin(function(a,c,d,e,f){function g(d){return function(e){if(b.stop(),e instanceof f&&1==e.node.childNodes.length&&(\"radialGradient\"==e.node.firstChild.tagName||\"linearGradient\"==e.node.firstChild.tagName||\"pattern\"==e.node.firstChild.tagName)&&(e=e.node.firstChild,n(this).appendChild(e),e=l(e)),e instanceof c)if(\"radialGradient\"==e.type||\"linearGradient\"==e.type||\"pattern\"==e.type){e.node.id||p(e.node,{id:e.id});var g=q(e.node.id)}else g=e.attr(d);else if(g=a.color(e),g.error){var h=a(n(this).ownerSVGElement).gradient(e);h?(h.node.id||p(h.node,{id:h.id}),g=q(h.node.id)):g=e}else g=r(g);var i={};i[d]=g,p(this.node,i),this.node.style[d]=t}}function h(a){b.stop(),a==+a&&(a+=\"px\"),this.node.style.fontSize=a}function i(a){for(var b=[],c=a.childNodes,d=0,e=c.length;e>d;d++){var f=c[d];3==f.nodeType&&b.push(f.nodeValue),\"tspan\"==f.tagName&&b.push(1==f.childNodes.length&&3==f.firstChild.nodeType?f.firstChild.nodeValue:i(f))}return b}function j(){return b.stop(),this.node.style.fontSize}var k=a._.make,l=a._.wrap,m=a.is,n=a._.getSomeDefs,o=/^url\\(#?([^)]+)\\)$/,p=a._.$,q=a.url,r=String,s=a._.separator,t=\"\";b.on(\"snap.util.attr.mask\",function(a){if(a instanceof c||a instanceof f){if(b.stop(),a instanceof f&&1==a.node.childNodes.length&&(a=a.node.firstChild,n(this).appendChild(a),a=l(a)),\"mask\"==a.type)var d=a;else d=k(\"mask\",n(this)),d.node.appendChild(a.node);!d.node.id&&p(d.node,{id:d.id}),p(this.node,{mask:q(d.id)})}}),function(a){b.on(\"snap.util.attr.
"f+=g+\"]\",i[b]=f}return Function(\"val\",\"return Snap.path.toString.call([\"+i+\"])\")}function j(a){for(var b=[],c=0,d=a.length;d>c;c++)for(var e=1,f=a[c].length;f>e;e++)b.push(a[c][e]);return b}var k={},l=/[a-z]+$/i,m=String;k.stroke=k.fill=\"colour\",c.prototype.equal=function(a,c){return b(\"snap.util.equal\",this,a,c).firstDefined()},b.on(\"snap.util.equal\",function(b,c){var d,n,o=m(this.attr(b)||\"\"),p=this;if(o==+o&&c==+c)return{from:+o,to:+c,f:f};if(\"colour\"==k[b])return d=a.color(o),n=a.color(c),{from:[d.r,d.g,d.b,d.opacity],to:[n.r,n.g,n.b,n.opacity],f:h};if(\"transform\"==b||\"gradientTransform\"==b||\"patternTransform\"==b)return c instanceof a.Matrix&&(c=c.toTransformString()),a._.rgTransform.test(c)||(c=a._.svgTransform2string(c)),e(o,c,function(){return p.getBBox(1)});if(\"d\"==b||\"path\"==b)return d=a.path.toCubic(o,c),{from:j(d[0]),to:j(d[1]),f:i(d[0])};if(\"points\"==b)return d=m(o).split(a._.separator),n=m(c).split(a._.separator),{from:d,to:n,f:function(a){return a}};aUnit=o.match(l);var q=m(c).match(l);return aUnit&&aUnit==q?{from:parseFloat(o),to:parseFloat(c),f:g(aUnit)}:{from:this.asPX(b),to:this.asPX(b,c),f:f}})}),d.plugin(function(a,c,d,e){for(var f=c.prototype,g=\"hasOwnProperty\",h=(\"createTouch\"in e.doc),i=[\"click\",\"dblclick\",\"mousedown\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"touchstart\",\"touchmove\",\"touchend\",\"touchcancel\"],j={mousedown:\"touchstart\",mousemove:\"touchmove\",mouseup:\"touchend\"},k=(function(a,b){var c=\"y\"==a?\"scrollTop\":\"scrollLeft\",d=b&&b.node?b.node.ownerDocument:e.doc;return d[c in d.documentElement?\"documentElement\":\"body\"][c]}),l=function(){this.returnValue=!1},m=function(){return this.originalEvent.preventDefault()},n=function(){this.cancelBubble=!0},o=function(){return this.originalEvent.stopPropagation()},p=function(){return e.doc.addEventListener?function(a,b,c,d){var e=h&&j[b]?j[b]:b,f=function(e){var f=k(\"y\",d),i=k(\"x\",d);if(h&&j[g](b))for(var l=0,n=e.targetTouches&&e.targetTouches.length;n>l;l++)if(e.targetTouches[l].target==a||a.contains(e.targetTouches[l].target)){var p=e;e=e.targetTouches[l],e.originalEvent=p,e.preventDefault=m,e.stopPropagation=o;break}var q=e.clientX+i,r=e.clientY+f;return c.call(d,e,q,r)};return b!==e&&a.addEventListener(b,f,!1),a.addEventListener(e,f,!1),function(){return b!==e&&a.removeEventListener(b,f,!1),a.removeEventListener(e,f,!1),!0}}:e.doc.attachEvent?function(a,b,c,d){var e=function(a){a=a||d.node.ownerDocument.window.event;var b=k(\"y\",d),e=k(\"x\",d),f=a.clientX+e,g=a.clientY+b;return a.preventDefault=a.preventDefault||l,a.stopPropagation=a.stopPropagation||n,c.call(d,a,f,g)};a.attachEvent(\"on\"+b,e);var f=function(){return a.detachEvent(\"on\"+b,e),!0};return f}:void 0}(),q=[],r=function(a){for(var c,d=a.clientX,e=a.clientY,f=k(\"y\"),g=k(\"x\"),i=q.length;i--;){if(c=q[i],h){for(var j,l=a.touches&&a.touches.length;l--;)if(j=a.touches[l],j.identifier==c.el._drag.id||c.el.node.contains(j.target)){d=j.clientX,e=j.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();{var m=c.el.node;m.nextSibling,m.parentNode,m.style.display}d+=g,e+=f,b(\"snap.drag.move.\"+c.el.id,c.move_scope||c.el,d-c.el._drag.x,e-c.el._drag.y,d,e,a)}},s=function(c){a.unmousemove(r).unmouseup(s);for(var d,e=q.length;e--;)d=q[e],d.el._drag={},b(\"snap.drag.end.\"+d.el.id,d.end_scope||d.start_scope||d.move_scope||d.el,c);q=[]},t=i.length;t--;)!function(b){a[b]=f[b]=function(c,d){return a.is(c,\"function\")&&(this.events=this.events||[],this.events.push({name:b,f:c,unbind:p(this.node||document,b,c,d||this)})),this},a[\"un\"+b]=f[\"un\"+b]=function(a){for(var c=this.events||[],d=c.length;d--;)if(c[d].name==b&&(c[d].f==a||!a))return c[d].unbind(),c.splice(d,1),!c.length&&delete this.events,this;return this}}(i[t]);f.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},f.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var u=[];f.drag=function(c,d,e,f,g,h){function i(i,j,k){(i.originalEvent||i).preventDefault(),this._drag.x=j,this._drag.
"]]></script>\n",
"<script><![CDATA[\n",
"(function (glob, factory) {\n",
" if (typeof define === 'function' && define.amd) {\n",
" define('ProfileSVG', ['ProfileSVG/snap.svg'], function (Snap) {\n",
" return factory(Snap);\n",
" });\n",
" } else {\n",
" glob.ProfileSVG = factory(glob.Snap);\n",
" }\n",
"}(this, function (Snap) {\n",
" 'use strict';\n",
"\n",
" var supportsPassive = false;\n",
" try {\n",
" var opts = Object.defineProperty({}, 'passive', {\n",
" get: function () {\n",
" return supportsPassive = true;\n",
" }\n",
" });\n",
" window.addEventListener(\"testPassive\", null, opts);\n",
" window.removeEventListener(\"testPassive\", null, opts);\n",
" } catch (e) { // not supported\n",
" }\n",
"\n",
" var stopper = function (e) {\n",
" e.preventDefault();\n",
" e.stopPropagation();\n",
" };\n",
"\n",
" var throttle = function (delay, filter, callback) {\n",
" var previousCall = new Date().getTime();\n",
" return function (e) {\n",
" var time = new Date().getTime();\n",
" if ((time - previousCall) >= delay) {\n",
" previousCall = time;\n",
" callback.apply(null, arguments);\n",
" }\n",
" filter(e);\n",
" };\n",
" };\n",
"\n",
"\n",
" var ProfileSVG = {};\n",
"\n",
" var NS_SVG = 'http://www.w3.org/2000/svg';\n",
" var DEFAULT_TRANSITION_TIME = 300;\n",
" var ZOOM_STEP = 1.4;\n",
" var VIEWPORT_SCALE = 0.9;\n",
" var VIEWPORT_MARGIN_X = 20;\n",
"\n",
" var formatText = function (fig, text, availableWidth) {\n",
" if (availableWidth < 3 * fig.charWidthM) {\n",
" return '';\n",
" }\n",
" var w = availableWidth;\n",
" var m = fig.charWidthM;\n",
" var n = fig.charWidthN;\n",
" var m2 = m * m;\n",
" var n2 = n * n;\n",
" var nc = 0.5 / n2 * (\n",
" (n - m) * Math.sqrt(n2 + (4 * w - 2 * m) * n + m2) + n2 + 2 * (w - m) * n + m2);\n",
" var nchars = Math.ceil(nc);\n",
" if (text.length <= nchars) {\n",
" return text;\n",
" }\n",
" return text.slice(0, nchars - 2) + '..';\n",
" };\n",
"\n",
" var unescapeHtml = function (str) {\n",
" return str\n",
" .replace(/</g, '<')\n",
" .replace(/>/g, '>')\n",
" .replace(/&/g, '&');\n",
" };\n",
"\n",
" var isDarkColor = function (c) {\n",
" var m = c.match(/^rgba?\\(\\s*(\\d+)[\\s,]+(\\d+)[\\s,]+(\\d+)/);\n",
" if (m) {\n",
" return m[1] * 299 + m[2] * 587 + m[3] * 114 < 255 * 650;\n",
" }\n",
" m = c.match(/^#([\\dA-F]{2})([\\dA-F]{2})([\\dA-F]{2})/i);\n",
" if (m) {\n",
" var r = parseInt(m[1], 16);\n",
" var g = parseInt(m[2], 16);\n",
" var b = parseInt(m[3], 16);\n",
" return r * 299 + g * 587 + b * 114 < 255 * 650;\n",
" }\n",
" return true;\n",
" };\n",
"\n",
" ProfileSVG.moveAndZoom = function (targetFocusX, targetScaleX, fig, deltaT) {\n",
" if (typeof deltaT === 'undefined') {\n",
" deltaT = DEFAULT_TRANSITION_TIME;\n",
" }\n",
"\n",
" var targetFocusY = fig.cy;\n",
" var targetScaleY = 1;\n",
"\n",
" // TODO: dynamically update the transformation while dragging\n",
" var mat = fig.viewport.node.transform.baseVal.consolidate().matrix;\n",
"\n",
" var oldScaleX = mat.a;\n",
" var oldScaleY = mat.d;\n",
" var oldE = mat.e;\n",
" var oldF = mat.f;\n",
"\n",
" var targetE = fig.cx - targetScaleX * targetFocusX;\n",
" var targetF = fig.cy - targetScaleY * targetFocusY;\n",
"\n",
" fig.focusX = targetFocusX;\n",
" fig.focusY = targetFocusY;\n",
" fig.scaleX = targetScaleX;\n",
" fig.scaleY = targetScaleY;\n",
"\n",
" var rects = undefined;\n",
" var pathrects = undefined;\n",
" if (fig.roundradius > 0) {\n",
" rects = fig.viewport.selectAll('rect');\n",
" } else {\n",
" pathrects = fig.viewport.selectAll('path');\n",
" }\n",
"\n",
" var scaleViewport = function (step) {\n",
" var scaleX = oldScaleX + (targetScaleX - oldScaleX) * step;\n",
" var scaleY = oldScaleY + (targetScaleY - oldScaleY) * step;\n",
"\n",
" var rMatrix = fig.viewport.node.transform.baseVal.consolidate().matrix;\n",
" rMatrix.a = scaleX;\n",
" rMatrix.d = scaleY;\n",
" rMatrix.e = oldE + (targetE - oldE) * step; // TransX\n",
" rMatrix.f = oldF + (targetF - oldF) * step; // TransY\n",
"\n",
" if (rects) {\n",
" rects.forEach(function (r) {\n",
" var rect = r.node;\n",
" rect.setAttribute('rx', Math.max(0.0, fig.roundradius / scaleX));\n",
" rect.setAttribute('ry', Math.max(0.0, fig.roundradius / scaleY));\n",
" });\n",
" }\n",
" };\n",
"\n",
" var finish = function () {\n",
" scaleViewport(1);\n",
" var scaleXt = 1.0 / targetScaleX;\n",
" var scaleYt = 1.0 / targetScaleY;\n",
" var updateText = function (text, x, y, w, shortinfo) {\n",
" var tMatrix = text.transform.baseVal.getItem(0).matrix;\n",
" tMatrix.a = scaleXt;\n",
" tMatrix.d = scaleYt;\n",
" tMatrix.e = (1.0 - scaleXt) * x;\n",
" tMatrix.f = (1.0 - scaleYt) * y;\n",
"\n",
" text.firstChild.nodeValue = formatText(fig, shortinfo, w / scaleXt);\n",
" text.style.display = 'inherit';\n",
" };\n",
" if (rects) {\n",
" rects.forEach(function (r) {\n",
" var rect = r.node;\n",
" var x = rect.x.baseVal.value;\n",
" var y = rect.y.baseVal.value;\n",
" var w = rect.width.baseVal.value;\n",
" var shortinfo = rect.getAttribute('data-shortinfo');\n",
" updateText(rect.nextElementSibling, x, y, w, shortinfo);\n",
" });\n",
" }\n",
" if (pathrects) {\n",
" pathrects.forEach(function (p) {\n",
" var path = p.node;\n",
" // The API compatibility of path segments is problematic.\n",
" var d = path.getAttribute('d');\n",
" var values = d.match(/^M\\s*([\\d.]+)[\\s,]+(-?[\\d.]+)[^h]+h\\s*([\\d.]+)/);\n",
" var x = Number(values[1]);\n",
" var y = Number(values[2]);\n",
" var w = Number(values[3]);\n",
" var shortinfo = path.getAttribute('data-shortinfo');\n",
" updateText(path.nextElementSibling, x, y, w, shortinfo);\n",
" });\n",
" }\n",
" };\n",
"\n",
" if (deltaT != 0) {\n",
" if (!fig.notext) {\n",
" fig.viewport.selectAll('text').forEach(function (text) {\n",
" text.node.style.display = 'none';\n",
" });\n",
" }\n",
" Snap.animate(0, 1, scaleViewport, deltaT, null, fig.notext ? null : finish);\n",
" } else {\n",
" if (!fig.notext) {\n",
" finish();\n",
" }\n",
" }\n",
"\n",
" };\n",
"\n",
" ProfileSVG.reset = function (fig) {\n",
" var w = fig.width - VIEWPORT_MARGIN_X;\n",
" var targetScaleX = fig.width / w * VIEWPORT_SCALE;\n",
" ProfileSVG.moveAndZoom(fig.cx, targetScaleX, fig);\n",
" };\n",
"\n",
" ProfileSVG.initialize = function (figId) {\n",
"\n",
" var svg = Snap.select('#' + figId);\n",
" var fig = {};\n",
" fig.id = figId;\n",
"\n",
" var bg = svg.select('#' + figId + '-bg');\n",
" var bbox = bg.getBBox();\n",
" fig.width = bbox.width;\n",
" fig.height = bbox.height;\n",
" fig.cx = fig.width / 2;\n",
" fig.cy = fig.height / 2;\n",
"\n",
" fig.viewport = svg.select('#' + figId + '-viewport');\n",
"\n",
" fig.xstep = fig.viewport.node.getAttribute('data-xstep');\n",
" fig.tunit = fig.viewport.node.getAttribute('data-tunit');\n",
" fig.delay = fig.viewport.node.getAttribute('data-delay');\n",
"\n",
" var texts = fig.viewport.selectAll('text');\n",
" fig.notext = false;\n",
" if (texts[0]) {\n",
" fig.notext = getComputedStyle(texts[0].node).strokeOpacity == 0.0;\n",
" texts.forEach(function (text) {\n",
" text.node.style.display = 'none';\n",
" });\n",
" }\n",
" texts = null;\n",
"\n",
" fig.roundradius = 0.0;\n",
" var rect = fig.viewport.select('rect');\n",
" if (rect) {\n",
" fig.roundradius = rect.node.rx.baseVal.value;\n",
" }\n",
"\n",
" fig.scaleX = 1.0;\n",
" fig.scaleY = 1.0; // prepare for the future\n",
" fig.focusX = fig.cx; // center x in the raw (scaleX=1) coordinate space\n",
" fig.focusY = fig.cy; // center y in the raw (scaleY=1) coordinate space\n",
"\n",
" var textBg = document.createElementNS(NS_SVG, 'rect');\n",
" var detail = document.createElementNS(NS_SVG, 'text');\n",
" var time = document.createElementNS(NS_SVG, 'text');\n",
" detail.style.visibility = 'hidden';\n",
" detail.textContent = 'MOw';\n",
" fig.viewport.node.parentNode.appendChild(textBg);\n",
" fig.viewport.node.parentNode.appendChild(detail);\n",
" fig.viewport.node.parentNode.appendChild(time);\n",
" var mBBox = detail.getBBox();\n",
" fig.charWidthM = mBBox.width / 3;\n",
" detail.textContent = 'night';\n",
" var nBBox = detail.getBBox();\n",
" fig.charWidthN = nBBox.width / 5;\n",
" fig.textHeight = nBBox.height;\n",
" detail.style.display = 'none';\n",
" detail.style.visibility = 'visible';\n",
"\n",
" detail.setAttribute('id', figId + '-details');\n",
" detail.setAttribute('x', fig.charWidthM);\n",
" detail.setAttribute('y', fig.height - fig.textHeight * 0.75);\n",
"\n",
" time.setAttribute('x', fig.width - fig.charWidthM * 10);\n",
" time.setAttribute('y', fig.height - fig.textHeight * 0.75);\n",
"\n",
" textBg.setAttribute('x', 0);\n",
" textBg.setAttribute('y', fig.height - fig.textHeight * 2);\n",
" textBg.setAttribute('width', fig.width);\n",
" textBg.setAttribute('height', fig.textHeight * 2);\n",
" var textBgFill = getComputedStyle(textBg).fill;\n",
" if (textBgFill == \"rgba(0, 0, 0, 0)\" || textBgFill == \"transparent\") {\n",
" var isDark = isDarkColor(getComputedStyle(detail).fill);\n",
" textBg.style.fill = isDark ? 'white' : 'black';\n",
" }\n",
" textBg.style.display = 'none';\n",
"\n",
" ProfileSVG.reset(fig);\n",
"\n",
" var rectDblClickHandler = function (e) {\n",
" var bbox = e.target.getBBox();\n",
" var cx = bbox.x + bbox.width / 2;\n",
" var targetScaleX = fig.width / bbox.width * VIEWPORT_SCALE;\n",
" ProfileSVG.moveAndZoom(cx, targetScaleX, fig);\n",
" };\n",
"\n",
" var rectMouseOverHandler = function (e) {\n",
" var rect = e.target;\n",
" var text = rect.nextElementSibling;\n",
" var details = document.getElementById(fig.id + '-details');\n",
" text.style.strokeWidth = '1';\n",
" var sinfo = rect.getAttribute('data-shortinfo');\n",
" var dir = rect.getAttribute('data-dinfo');\n",
" var i = sinfo.indexOf(' in ');\n",
" var func = sinfo.slice(0, i + 4);\n",
" var file = sinfo.slice(i + 4);\n",
" var time = details.nextElementSibling;\n",
" details.textContent = 'Function: ' + func + dir + file;\n",
" details.style.display = 'inherit';\n",
" if (fig.delay) {\n",
" var count = Math.round(rect.width.baseVal.value / fig.xstep);\n",
" var t = count * (fig.tunit === 's' ? fig.delay :\n",
" fig.tunit === 'ms' ? fig.delay * 1e3 :\n",
" fig.tunit === 'us' || fig.tunit === 'μs' ? fig.delay * 1e6 : 1);\n",
" var tp = Math.round(t * 1000) / 1000;\n",
" time.textContent = 'Time: ' + tp + ' ' + fig.tunit;\n",
" time.style.display = 'inherit';\n",
" }\n",
" details.previousElementSibling.style.display = 'inherit';\n",
" };\n",
" var rectMouseOutHandler = function (e) {\n",
" var rect = e.target;\n",
" var text = rect.nextElementSibling;\n",
" var details = document.getElementById(fig.id + '-details');\n",
" text.style.strokeWidth = '0';\n",
" details.style.display = 'none';\n",
" details.previousElementSibling.style.display = 'none';\n",
" details.nextElementSibling.style.display = 'none';\n",
" };\n",
"\n",
" var rects = fig.viewport.selectAll(fig.roundradius > 0 ? 'rect' : 'path');\n",
" rects.forEach(function (r) {\n",
" var rect = r.node;\n",
" var text = rect.nextElementSibling;\n",
" rect.setAttribute('data-shortinfo', unescapeHtml(text.textContent));\n",
" var dir = unescapeHtml(rect.getAttribute('data-dinfo'));\n",
" rect.setAttribute('data-dinfo', dir);\n",
" rect.addEventListener('dblclick', rectDblClickHandler, false);\n",
" rect.addEventListener('mouseover', rectMouseOverHandler, false);\n",
" rect.addEventListener('mouseout', rectMouseOutHandler, false);\n",
" var transform = svg.node.createSVGTransform();\n",
" text.transform.baseVal.initialize(transform); // matrix(1, 0, 0, 1, 0, 0)\n",
" });\n",
" rects = null;\n",
"\n",
" bg.dblclick(function () {\n",
" ProfileSVG.reset(fig);\n",
" });\n",
"\n",
" var mouseWheelHandler = throttle(400, stopper, function (e) {\n",
" var delta = Math.round(e.deltaY * 100);\n",
" if (delta == 0) {\n",
" return;\n",
" }\n",
" var scale = delta < 0 ? ZOOM_STEP : 1 / ZOOM_STEP;\n",
"\n",
" var clientRect = svg.node.getBoundingClientRect();\n",
" var mx = e.clientX - clientRect.left;\n",
" //var my = e.clientY - clientRect.top;\n",
" var ctm = svg.node.getCTM();\n",
" var x = ctm ? (mx - ctm.e) / ctm.a : mx;\n",
" //var y = ctm ? (my - ctm.f) / ctm.d : my;\n",
" var px = (x - fig.cx) / fig.scaleX + fig.focusX;\n",
" var targetScaleX = Math.max(fig.scaleX * scale, 0.01);\n",
" var targetFocusX = fig.scaleX / targetScaleX * (fig.focusX - px) + px;\n",
" ProfileSVG.moveAndZoom(targetFocusX, targetScaleX, fig, 400);\n",
" });\n",
"\n",
" svg.node.addEventListener('wheel', mouseWheelHandler, supportsPassive ? {\n",
" passive: false\n",
" } : false);\n",
"\n",
" fig.viewport.drag();\n",
" };\n",
"\n",
" return ProfileSVG;\n",
"}));\n",
"\n",
"]]></script>\n",
"<script><![CDATA[\n",
"if (typeof require === 'function' && define.amd) {\n",
" require(['ProfileSVG'], function (ProfileSVG) {\n",
" ProfileSVG.initialize(\"fig-7602c8b896fb47fdb5e2542ca3bfb867\");\n",
" });\n",
"} else {\n",
" ProfileSVG.initialize(\"fig-7602c8b896fb47fdb5e2542ca3bfb867\");\n",
"}\n",
"]]></script>\n",
"</svg>\n"
],
"text/html": [
"<!DOCTYPE html>\n",
"<html>\n",
"<body>\n",
"<svg version=\"1.1\" width=\"960\" height=\"436\" viewBox=\"0 0 960 436\"\n",
" xmlns=\"http://www.w3.org/2000/svg\" id=\"fig-ea48ff6b8eb24d469d4136cfff400afd\">\n",
"<defs>\n",
" <clipPath id=\"fig-ea48ff6b8eb24d469d4136cfff400afd-clip\">\n",
" <rect x=\"0\" y=\"0\" width=\"960\" height=\"436\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<style type=\"text/css\">\n",
" #fig-ea48ff6b8eb24d469d4136cfff400afd text {\n",
" pointer-events: none;\n",
" font-family: inherit;\n",
" font-size: 12px;\n",
" fill: #000000;\n",
" }\n",
" text#fig-ea48ff6b8eb24d469d4136cfff400afd-caption {\n",
" font-size: 16.8px;\n",
" fill: #000000;\n",
" text-anchor: middle;\n",
" }\n",
" #fig-ea48ff6b8eb24d469d4136cfff400afd-bg {\n",
" fill: #FFFFFF;\n",
" }\n",
" #fig-ea48ff6b8eb24d469d4136cfff400afd-viewport rect, #fig-ea48ff6b8eb24d469d4136cfff400afd-viewport path {\n",
" vector-effect: non-scaling-stroke;\n",
" fill-opacity: 1;\n",
" }\n",
" #fig-ea48ff6b8eb24d469d4136cfff400afd-viewport text {\n",
" stroke: #000000;\n",
" stroke-width: 0;\n",
" stroke-opacity: 0.35;\n",
" }\n",
" #fig-ea48ff6b8eb24d469d4136cfff400afd-viewport rect:hover, #fig-ea48ff6b8eb24d469d4136cfff400afd-viewport path:hover {\n",
" fill-opacity: 0.75;\n",
" stroke: #000000;\n",
" stroke-width: 0.5;\n",
" }\n",
" #fig-ea48ff6b8eb24d469d4136cfff400afd-viewport + rect {\n",
" fill: #FFFFFF;\n",
" opacity: 0.8;\n",
" }\n",
" text#fig-ea48ff6b8eb24d469d4136cfff400afd-details{\n",
" fill: #000000;\n",
" }\n",
"</style>\n",
"<g id=\"fig-ea48ff6b8eb24d469d4136cfff400afd-frame\" clip-path=\"url(#fig-ea48ff6b8eb24d469d4136cfff400afd-clip)\">\n",
"<rect id=\"fig-ea48ff6b8eb24d469d4136cfff400afd-bg\" x=\"0\" y=\"0\" width=\"960\" height=\"436\"/>\n",
"<text id=\"fig-ea48ff6b8eb24d469d4136cfff400afd-caption\" x=\"480\" y=\"24\">Profile results</text>\n",
"<g id=\"fig-ea48ff6b8eb24d469d4136cfff400afd-viewport\" transform=\"scale(1)\">\n",
"<rect x=\"10\" y=\"383\" width=\"940.31\" height=\"15\" rx=\"2\" fill=\"#F3004D\" data-dinfo=\"\"/>\n",
"<text x=\"10\" dx=\"4\" y=\"394.25\"> in :-1</text>\n",
"<rect x=\"14.92\" y=\"368\" width=\"743.39\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"379.25\">#15 in task.jl:514</text>\n",
"<rect x=\"14.92\" y=\"353\" width=\"743.39\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"/Users/elvis/.julia/packages/IJulia/Vo51o/src/\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"364.25\">eventloop in eventloop.jl:8</text>\n",
"<rect x=\"14.92\" y=\"338\" width=\"743.39\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"349.25\">invokelatest in essentials.jl:816</text>\n",
"<rect x=\"14.92\" y=\"323\" width=\"743.39\" height=\"15\" rx=\"2\" fill=\"#F3004D\" data-dinfo=\"./\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"334.25\">#invokelatest#2 in essentials.jl:819</text>\n",
"<rect x=\"14.92\" y=\"308\" width=\"743.39\" height=\"15\" rx=\"2\" fill=\"#D42137\" data-dinfo=\"/Users/elvis/.julia/packages/IJulia/Vo51o/src/\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"319.25\">execute_request in execute_request.jl:67</text>\n",
"<rect x=\"14.92\" y=\"293\" width=\"743.39\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"/Users/elvis/.julia/packages/SoftGlobalScope/u4UzH/src/\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"304.25\">softscope_include_string in SoftGlobalScope.jl:65</text>\n",
"<rect x=\"14.92\" y=\"278\" width=\"743.39\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"289.25\">include_string in loading.jl:1903</text>\n",
"<rect x=\"14.92\" y=\"263\" width=\"743.39\" height=\"15\" rx=\"2\" fill=\"#F3004D\" data-dinfo=\"./\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"274.25\">eval in boot.jl:370</text>\n",
"<rect x=\"14.92\" y=\"248\" width=\"22.16\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"/Users/elvis/Documents/University/Corsi/Computational Mathematics for Learning and Data Analysis/CMLDA/project/\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"259.25\">\\ in thinQR.jl:109</text>\n",
"<rect x=\"14.92\" y=\"233\" width=\"22.16\" height=\"15\" rx=\"2\" fill=\"#F3004D\" data-dinfo=\"/Users/elvis/Documents/University/Corsi/Computational Mathematics for Learning and Data Analysis/CMLDA/project/\"/>\n",
"<text x=\"14.92\" dx=\"4\" y=\"244.25\">qyhoust in thinQR.jl:58</text>\n",
"<rect x=\"17.38\" y=\"218\" width=\"17.24\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"17.38\" dx=\"4\" y=\"229.25\">getindex in abstractarray.jl:1296</text>\n",
"<rect x=\"17.38\" y=\"203\" width=\"17.24\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"17.38\" dx=\"4\" y=\"214.25\">_getindex in multidimensional.jl:861</text>\n",
"<rect x=\"17.38\" y=\"188\" width=\"4.93\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"17.38\" dx=\"4\" y=\"199.25\">_unsafe_getindex in multidimensional.jl:873</text>\n",
"<rect x=\"17.38\" y=\"173\" width=\"4.93\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"17.38\" dx=\"4\" y=\"184.25\">similar in abstractarray.jl:838</text>\n",
"<rect x=\"17.38\" y=\"158\" width=\"4.93\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"17.38\" dx=\"4\" y=\"169.25\">similar in array.jl:374</text>\n",
"<rect x=\"17.38\" y=\"143\" width=\"4.93\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"17.38\" dx=\"4\" y=\"154.25\">Array in boot.jl:486</text>\n",
"<rect x=\"17.38\" y=\"128\" width=\"4.93\" height=\"15\" rx=\"2\" fill=\"#F6A60A\" data-dinfo=\"./\"/>\n",
"<text x=\"17.38\" dx=\"4\" y=\"139.25\">Array in boot.jl:477</text>\n",
"<rect x=\"22.31\" y=\"188\" width=\"12.31\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"22.31\" dx=\"4\" y=\"199.25\">_unsafe_getindex in multidimensional.jl:875</text>\n",
"<rect x=\"22.31\" y=\"173\" width=\"12.31\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"22.31\" dx=\"4\" y=\"184.25\">_unsafe_getindex! in multidimensional.jl:884</text>\n",
"<rect x=\"22.31\" y=\"158\" width=\"12.31\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"22.31\" dx=\"4\" y=\"169.25\">macro expansion in cartesian.jl:64</text>\n",
"<rect x=\"22.31\" y=\"143\" width=\"12.31\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"22.31\" dx=\"4\" y=\"154.25\">macro expansion in multidimensional.jl:889</text>\n",
"<rect x=\"22.31\" y=\"128\" width=\"12.31\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"22.31\" dx=\"4\" y=\"139.25\">setindex! in array.jl:969</text>\n",
"<rect x=\"34.62\" y=\"218\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"34.62\" dx=\"4\" y=\"229.25\">- in arraymath.jl:8</text>\n",
"<rect x=\"34.62\" y=\"203\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"34.62\" dx=\"4\" y=\"214.25\">broadcast_preserving_zero_d in broadcast.jl:862</text>\n",
"<rect x=\"34.62\" y=\"188\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"34.62\" dx=\"4\" y=\"199.25\">materialize in broadcast.jl:873</text>\n",
"<rect x=\"34.62\" y=\"173\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"34.62\" dx=\"4\" y=\"184.25\">copy in broadcast.jl:898</text>\n",
"<rect x=\"34.62\" y=\"158\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"34.62\" dx=\"4\" y=\"169.25\">copyto! in broadcast.jl:926</text>\n",
"<rect x=\"34.62\" y=\"143\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"34.62\" dx=\"4\" y=\"154.25\">copyto! in broadcast.jl:973</text>\n",
"<rect x=\"34.62\" y=\"128\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"34.62\" dx=\"4\" y=\"139.25\">macro expansion in simdloop.jl:78</text>\n",
"<rect x=\"34.62\" y=\"113\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"34.62\" dx=\"4\" y=\"124.25\">+ in int.jl:87</text>\n",
"<rect x=\"37.08\" y=\"248\" width=\"721.23\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"/Users/elvis/Documents/University/Corsi/Computational Mathematics for Learning and Data Analysis/CMLDA/project/\"/>\n",
"<text x=\"37.08\" dx=\"4\" y=\"259.25\">qrhous! in thinQR.jl:32</text>\n",
"<rect x=\"37.08\" y=\"233\" width=\"337.23\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"37.08\" dx=\"4\" y=\"244.25\">getindex in abstractarray.jl:1296</text>\n",
"<rect x=\"37.08\" y=\"218\" width=\"337.23\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"37.08\" dx=\"4\" y=\"229.25\">_getindex in multidimensional.jl:861</text>\n",
"<rect x=\"37.08\" y=\"203\" width=\"39.38\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"37.08\" dx=\"4\" y=\"214.25\">_unsafe_getindex in multidimensional.jl:873</text>\n",
"<rect x=\"37.08\" y=\"188\" width=\"39.38\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"37.08\" dx=\"4\" y=\"199.25\">similar in abstractarray.jl:838</text>\n",
"<rect x=\"37.08\" y=\"173\" width=\"39.38\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"37.08\" dx=\"4\" y=\"184.25\">similar in array.jl:374</text>\n",
"<rect x=\"37.08\" y=\"158\" width=\"39.38\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"37.08\" dx=\"4\" y=\"169.25\">Array in boot.jl:487</text>\n",
"<rect x=\"37.08\" y=\"143\" width=\"39.38\" height=\"15\" rx=\"2\" fill=\"#FFA400\" data-dinfo=\"./\"/>\n",
"<text x=\"37.08\" dx=\"4\" y=\"154.25\">Array in boot.jl:479</text>\n",
"<rect x=\"76.46\" y=\"203\" width=\"4.92\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"76.46\" dx=\"4\" y=\"214.25\">_unsafe_getindex in multidimensional.jl:875</text>\n",
"<rect x=\"76.46\" y=\"188\" width=\"4.92\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"76.46\" dx=\"4\" y=\"199.25\">_unsafe_getindex! in multidimensional.jl:884</text>\n",
"<rect x=\"76.46\" y=\"173\" width=\"4.92\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"76.46\" dx=\"4\" y=\"184.25\">macro expansion in cartesian.jl:64</text>\n",
"<rect x=\"76.46\" y=\"158\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"76.46\" dx=\"4\" y=\"169.25\">macro expansion in multidimensional.jl:887</text>\n",
"<rect x=\"78.92\" y=\"158\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"78.92\" dx=\"4\" y=\"169.25\">macro expansion in multidimensional.jl:889</text>\n",
"<rect x=\"78.92\" y=\"143\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"78.92\" dx=\"4\" y=\"154.25\">setindex! in array.jl:969</text>\n",
"<rect x=\"81.38\" y=\"203\" width=\"292.93\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"81.38\" dx=\"4\" y=\"214.25\">_unsafe_getindex in multidimensional.jl:875</text>\n",
"<rect x=\"81.38\" y=\"188\" width=\"292.93\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"81.38\" dx=\"4\" y=\"199.25\">_unsafe_getindex! in multidimensional.jl:884</text>\n",
"<rect x=\"81.38\" y=\"173\" width=\"292.93\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"81.38\" dx=\"4\" y=\"184.25\">macro expansion in cartesian.jl:64</text>\n",
"<rect x=\"81.38\" y=\"158\" width=\"76.31\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"81.38\" dx=\"4\" y=\"169.25\">macro expansion in multidimensional.jl:887</text>\n",
"<rect x=\"157.69\" y=\"158\" width=\"216.62\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"157.69\" dx=\"4\" y=\"169.25\">macro expansion in multidimensional.jl:889</text>\n",
"<rect x=\"157.69\" y=\"143\" width=\"216.62\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"157.69\" dx=\"4\" y=\"154.25\">setindex! in array.jl:969</text>\n",
"<rect x=\"374.31\" y=\"233\" width=\"93.54\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"374.31\" dx=\"4\" y=\"244.25\">setindex! in abstractarray.jl:1399</text>\n",
"<rect x=\"374.31\" y=\"218\" width=\"93.54\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"374.31\" dx=\"4\" y=\"229.25\">_setindex! in multidimensional.jl:916</text>\n",
"<rect x=\"374.31\" y=\"203\" width=\"93.54\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"374.31\" dx=\"4\" y=\"214.25\">_unsafe_setindex! in multidimensional.jl:927</text>\n",
"<rect x=\"374.31\" y=\"188\" width=\"86.15\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"374.31\" dx=\"4\" y=\"199.25\">macro expansion in cartesian.jl:64</text>\n",
"<rect x=\"374.31\" y=\"173\" width=\"41.84\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"374.31\" dx=\"4\" y=\"184.25\">macro expansion in multidimensional.jl:930</text>\n",
"<rect x=\"416.15\" y=\"173\" width=\"39.39\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"416.15\" dx=\"4\" y=\"184.25\">macro expansion in multidimensional.jl:932</text>\n",
"<rect x=\"416.15\" y=\"158\" width=\"39.39\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"416.15\" dx=\"4\" y=\"169.25\">setindex! in array.jl:971</text>\n",
"<rect x=\"455.54\" y=\"173\" width=\"4.92\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"455.54\" dx=\"4\" y=\"184.25\">macro expansion in multidimensional.jl:933</text>\n",
"<rect x=\"455.54\" y=\"158\" width=\"4.92\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"455.54\" dx=\"4\" y=\"169.25\">iterate in array.jl:893</text>\n",
"<rect x=\"455.54\" y=\"143\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"455.54\" dx=\"4\" y=\"154.25\">- in int.jl:1042</text>\n",
"<rect x=\"455.54\" y=\"128\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"455.54\" dx=\"4\" y=\"139.25\">- in int.jl:86</text>\n",
"<rect x=\"460.46\" y=\"188\" width=\"7.39\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"460.46\" dx=\"4\" y=\"199.25\">macro expansion in cartesian.jl:66</text>\n",
"<rect x=\"460.46\" y=\"173\" width=\"7.39\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"460.46\" dx=\"4\" y=\"184.25\">iterate in range.jl:891</text>\n",
"<rect x=\"460.46\" y=\"158\" width=\"7.39\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"460.46\" dx=\"4\" y=\"169.25\">== in promotion.jl:499</text>\n",
"<rect x=\"467.85\" y=\"233\" width=\"164.92\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"244.25\">- in arraymath.jl:8</text>\n",
"<rect x=\"467.85\" y=\"218\" width=\"164.92\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"229.25\">broadcast_preserving_zero_d in broadcast.jl:862</text>\n",
"<rect x=\"467.85\" y=\"203\" width=\"164.92\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"214.25\">materialize in broadcast.jl:873</text>\n",
"<rect x=\"467.85\" y=\"188\" width=\"164.92\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"199.25\">copy in broadcast.jl:898</text>\n",
"<rect x=\"467.85\" y=\"173\" width=\"140.3\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"184.25\">copyto! in broadcast.jl:926</text>\n",
"<rect x=\"467.85\" y=\"158\" width=\"140.3\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"169.25\">copyto! in broadcast.jl:973</text>\n",
"<rect x=\"467.85\" y=\"143\" width=\"128\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"154.25\">macro expansion in simdloop.jl:77</text>\n",
"<rect x=\"467.85\" y=\"128\" width=\"128\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"139.25\">macro expansion in broadcast.jl:974</text>\n",
"<rect x=\"467.85\" y=\"113\" width=\"54.15\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"124.25\">getindex in broadcast.jl:610</text>\n",
"<rect x=\"467.85\" y=\"98\" width=\"54.15\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"109.25\">_broadcast_getindex in broadcast.jl:655</text>\n",
"<rect x=\"467.85\" y=\"83\" width=\"54.15\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"94.25\">_getindex in broadcast.jl:679</text>\n",
"<rect x=\"467.85\" y=\"68\" width=\"54.15\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"79.25\">_broadcast_getindex in broadcast.jl:649</text>\n",
"<rect x=\"467.85\" y=\"53\" width=\"54.15\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"64.25\">getindex in multidimensional.jl:668</text>\n",
"<rect x=\"467.85\" y=\"38\" width=\"54.15\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"467.85\" dx=\"4\" y=\"49.25\">getindex in essentials.jl:14</text>\n",
"<rect x=\"522\" y=\"113\" width=\"73.85\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"522\" dx=\"4\" y=\"124.25\">setindex! in multidimensional.jl:670</text>\n",
"<rect x=\"522\" y=\"98\" width=\"73.85\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"522\" dx=\"4\" y=\"109.25\">setindex! in array.jl:971</text>\n",
"<rect x=\"595.85\" y=\"143\" width=\"12.3\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"595.85\" dx=\"4\" y=\"154.25\">macro expansion in simdloop.jl:78</text>\n",
"<rect x=\"595.85\" y=\"128\" width=\"12.3\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"595.85\" dx=\"4\" y=\"139.25\">+ in int.jl:87</text>\n",
"<rect x=\"608.15\" y=\"173\" width=\"24.62\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"608.15\" dx=\"4\" y=\"184.25\">similar in broadcast.jl:211</text>\n",
"<rect x=\"608.15\" y=\"158\" width=\"24.62\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"608.15\" dx=\"4\" y=\"169.25\">similar in broadcast.jl:212</text>\n",
"<rect x=\"608.15\" y=\"143\" width=\"24.62\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"608.15\" dx=\"4\" y=\"154.25\">similar in abstractarray.jl:883</text>\n",
"<rect x=\"608.15\" y=\"128\" width=\"24.62\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"608.15\" dx=\"4\" y=\"139.25\">similar in abstractarray.jl:884</text>\n",
"<rect x=\"608.15\" y=\"113\" width=\"24.62\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"608.15\" dx=\"4\" y=\"124.25\">Array in boot.jl:494</text>\n",
"<rect x=\"608.15\" y=\"98\" width=\"24.62\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"608.15\" dx=\"4\" y=\"109.25\">Array in boot.jl:487</text>\n",
"<rect x=\"608.15\" y=\"83\" width=\"24.62\" height=\"15\" rx=\"2\" fill=\"#FFA400\" data-dinfo=\"./\"/>\n",
"<text x=\"608.15\" dx=\"4\" y=\"94.25\">Array in boot.jl:479</text>\n",
"<rect x=\"632.77\" y=\"233\" width=\"125.54\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"/private/tmp/julia-20231114-6658-1ywjgwz/julia-1.9.4/usr/share/julia/stdlib/v1.9/LinearAlgebra/src/\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"244.25\">* in adjtrans.jl:439</text>\n",
"<rect x=\"632.77\" y=\"218\" width=\"125.54\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"229.25\">broadcast in broadcast.jl:811</text>\n",
"<rect x=\"632.77\" y=\"203\" width=\"125.54\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"214.25\">materialize in broadcast.jl:873</text>\n",
"<rect x=\"632.77\" y=\"188\" width=\"125.54\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"199.25\">copy in broadcast.jl:898</text>\n",
"<rect x=\"632.77\" y=\"173\" width=\"123.08\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"184.25\">copyto! in broadcast.jl:926</text>\n",
"<rect x=\"632.77\" y=\"158\" width=\"123.08\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"169.25\">copyto! in broadcast.jl:973</text>\n",
"<rect x=\"632.77\" y=\"143\" width=\"105.85\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"154.25\">macro expansion in simdloop.jl:77</text>\n",
"<rect x=\"632.77\" y=\"128\" width=\"105.85\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"139.25\">macro expansion in broadcast.jl:974</text>\n",
"<rect x=\"632.77\" y=\"113\" width=\"19.69\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"124.25\">getindex in broadcast.jl:610</text>\n",
"<rect x=\"632.77\" y=\"98\" width=\"19.69\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"109.25\">_broadcast_getindex in broadcast.jl:655</text>\n",
"<rect x=\"632.77\" y=\"83\" width=\"19.69\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"94.25\">_getindex in broadcast.jl:679</text>\n",
"<rect x=\"632.77\" y=\"68\" width=\"19.69\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"79.25\">_broadcast_getindex in broadcast.jl:649</text>\n",
"<rect x=\"632.77\" y=\"53\" width=\"19.69\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"64.25\">getindex in multidimensional.jl:668</text>\n",
"<rect x=\"632.77\" y=\"38\" width=\"19.69\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"632.77\" dx=\"4\" y=\"49.25\">getindex in essentials.jl:13</text>\n",
"<rect x=\"652.46\" y=\"113\" width=\"86.16\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"652.46\" dx=\"4\" y=\"124.25\">setindex! in multidimensional.jl:670</text>\n",
"<rect x=\"652.46\" y=\"98\" width=\"86.16\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"652.46\" dx=\"4\" y=\"109.25\">setindex! in array.jl:971</text>\n",
"<rect x=\"738.62\" y=\"143\" width=\"17.23\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"738.62\" dx=\"4\" y=\"154.25\">macro expansion in simdloop.jl:78</text>\n",
"<rect x=\"738.62\" y=\"128\" width=\"17.23\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"738.62\" dx=\"4\" y=\"139.25\">+ in int.jl:87</text>\n",
"<rect x=\"755.85\" y=\"173\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#6FDC91\" data-dinfo=\"./\"/>\n",
"<text x=\"755.85\" dx=\"4\" y=\"184.25\">similar in broadcast.jl:211</text>\n",
"<rect x=\"755.85\" y=\"158\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#00B58B\" data-dinfo=\"./\"/>\n",
"<text x=\"755.85\" dx=\"4\" y=\"169.25\">similar in broadcast.jl:212</text>\n",
"<rect x=\"755.85\" y=\"143\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"755.85\" dx=\"4\" y=\"154.25\">similar in abstractarray.jl:883</text>\n",
"<rect x=\"755.85\" y=\"128\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"755.85\" dx=\"4\" y=\"139.25\">similar in abstractarray.jl:884</text>\n",
"<rect x=\"755.85\" y=\"113\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#E1B2FF\" data-dinfo=\"./\"/>\n",
"<text x=\"755.85\" dx=\"4\" y=\"124.25\">Array in boot.jl:494</text>\n",
"<rect x=\"755.85\" y=\"98\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#2CA3FF\" data-dinfo=\"./\"/>\n",
"<text x=\"755.85\" dx=\"4\" y=\"109.25\">Array in boot.jl:487</text>\n",
"<rect x=\"755.85\" y=\"83\" width=\"2.46\" height=\"15\" rx=\"2\" fill=\"#FFA400\" data-dinfo=\"./\"/>\n",
"<text x=\"755.85\" dx=\"4\" y=\"94.25\">Array in boot.jl:479</text>\n",
"</g></g>\n",
"<script><![CDATA[\n",
"// Snap.svg 0.3.0\n",
"// \n",
"// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n",
"// \n",
"// Licensed under the Apache License, Version 2.0 (the \"License\");\n",
"// you may not use this file except in compliance with the License.\n",
"// You may obtain a copy of the License at\n",
"// \n",
"// http://www.apache.org/licenses/LICENSE-2.0\n",
"// \n",
"// Unless required by applicable law or agreed to in writing, software\n",
"// distributed under the License is distributed on an \"AS IS\" BASIS,\n",
"// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
"// See the License for the specific language governing permissions and\n",
"// limitations under the License.\n",
"// \n",
"// build: 2014-06-03\n",
"!function(a){var b,c,d=\"0.4.2\",e=\"hasOwnProperty\",f=/[\\.\\/]/,g=/\\s*,\\s*/,h=\"*\",i=function(a,b){return a-b},j={n:{}},k=function(){for(var a=0,b=this.length;b>a;a++)if(\"undefined\"!=typeof this[a])return this[a]},l=function(){for(var a=this.length;--a;)if(\"undefined\"!=typeof this[a])return this[a]},m=function(a,d){a=String(a);var e,f=c,g=Array.prototype.slice.call(arguments,2),h=m.listeners(a),j=0,n=[],o={},p=[],q=b;p.firstDefined=k,p.lastDefined=l,b=a,c=0;for(var r=0,s=h.length;s>r;r++)\"zIndex\"in h[r]&&(n.push(h[r].zIndex),h[r].zIndex<0&&(o[h[r].zIndex]=h[r]));for(n.sort(i);n[j]<0;)if(e=o[n[j++] ],p.push(e.apply(d,g)),c)return c=f,p;for(r=0;s>r;r++)if(e=h[r],\"zIndex\"in e)if(e.zIndex==n[j]){if(p.push(e.apply(d,g)),c)break;do if(j++,e=o[n[j] ],e&&p.push(e.apply(d,g)),c)break;while(e)}else o[e.zIndex]=e;else if(p.push(e.apply(d,g)),c)break;return c=f,b=q,p};m._events=j,m.listeners=function(a){var b,c,d,e,g,i,k,l,m=a.split(f),n=j,o=[n],p=[];for(e=0,g=m.length;g>e;e++){for(l=[],i=0,k=o.length;k>i;i++)for(n=o[i].n,c=[n[m[e] ],n[h] ],d=2;d--;)b=c[d],b&&(l.push(b),p=p.concat(b.f||[]));o=l}return p},m.on=function(a,b){if(a=String(a),\"function\"!=typeof b)return function(){};for(var c=a.split(g),d=0,e=c.length;e>d;d++)!function(a){for(var c,d=a.split(f),e=j,g=0,h=d.length;h>g;g++)e=e.n,e=e.hasOwnProperty(d[g])&&e[d[g] ]||(e[d[g] ]={n:{}});for(e.f=e.f||[],g=0,h=e.f.length;h>g;g++)if(e.f[g]==b){c=!0;break}!c&&e.f.push(b)}(c[d]);return function(a){+a==+a&&(b.zIndex=+a)}},m.f=function(a){var b=[].slice.call(arguments,1);return function(){m.apply(null,[a,null].concat(b).concat([].slice.call(arguments,0)))}},m.stop=function(){c=1},m.nt=function(a){return a?new RegExp(\"(?:\\\\.|\\\\/|^)\"+a+\"(?:\\\\.|\\\\/|$)\").test(b):b},m.nts=function(){return b.split(f)},m.off=m.unbind=function(a,b){if(!a)return void(m._events=j={n:{}});var c=a.split(g);if(c.length>1)for(var d=0,i=c.length;i>d;d++)m.off(c[d],b);else{c=a.split(f);var k,l,n,d,i,o,p,q=[j];for(d=0,i=c.length;i>d;d++)for(o=0;o<q.length;o+=n.length-2){if(n=[o,1],k=q[o].n,c[d]!=h)k[c[d] ]&&n.push(k[c[d] ]);else for(l in k)k[e](l)&&n.push(k[l]);q.splice.apply(q,n)}for(d=0,i=q.length;i>d;d++)for(k=q[d];k.n;){if(b){if(k.f){for(o=0,p=k.f.length;p>o;o++)if(k.f[o]==b){k.f.splice(o,1);break}!k.f.length&&delete k.f}for(l in k.n)if(k.n[e](l)&&k.n[l].f){var r=k.n[l].f;for(o=0,p=r.length;p>o;o++)if(r[o]==b){r.splice(o,1);break}!r.length&&delete k.n[l].f}}else{delete k.f;for(l in k.n)k.n[e](l)&&k.n[l].f&&delete k.n[l].f}k=k.n}}},m.once=function(a,b){var c=function(){return m.unbind(a,c),b.apply(this,arguments)};return m.on(a,c)},m.version=d,m.toString=function(){return\"You are running Eve \"+d},\"undefined\"!=typeof module&&module.exports?module.exports=m:\"function\"==typeof define&&define.amd?define(\"eve\",[],function(){return m}):a.eve=m}(this),function(a,b){\"function\"==typeof define&&define.amd?define('ProfileSVG/snap.svg', [\"eve\"],function(c){return b(a,c)}):b(a,a.eve)}(this,function(a,b){var c=function(b){var c={},d=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimationFrame||function(a){setTimeout(a,16)},e=Array.isArray||function(a){return a instanceof Array||\"[object Array]\"==Object.prototype.toString.call(a)},f=0,g=\"M\"+(+new Date).toString(36),h=function(){return g+(f++).toString(36)},i=Date.now||function(){return+new Date},j=function(a){var b=this;if(null==a)return b.s;var c=b.s-a;b.b+=b.dur*c,b.B+=b.dur*c,b.s=a},k=function(a){var b=this;return null==a?b.spd:void(b.spd=a)},l=function(a){var b=this;return null==a?b.dur:(b.s=b.s*a/b.dur,void(b.dur=a))},m=function(){var a=this;delete c[a.id],a.update(),b(\"mina.stop.\"+a.id,a)},n=function(){var a=this;a.pdif||(delete c[a.id],a.update(),a.pdif=a.get()-a.b)},o=function(){var a=this;a.pdif&&(a.b=a.get()-a.pdif,delete a.pdif,c[a.id]=a)},p=function(){var a,b=this;if(e(b.start)){a=[];for(var c=0,d=b.start.length;d>c;c++)a[c]=+b.start[c]+(b.end[c]-b.start[c])*b.easing(b.s)}else a=+b.start+(b.end-b.start)*b.easing(b.s);b.set(a)},q=function()
"}function h(a){var b=e.sqrt(g(a));a[0]&&(a[0]/=b),a[1]&&(a[1]/=b)}c.add=function(a,c,d,e,f,g){var h,i,j,k,l=[[],[],[] ],m=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1] ],n=[[a,d,f],[c,e,g],[0,0,1] ];for(a&&a instanceof b&&(n=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1] ]),h=0;3>h;h++)for(i=0;3>i;i++){for(k=0,j=0;3>j;j++)k+=m[h][j]*n[j][i];l[h][i]=k}return this.a=l[0][0],this.b=l[1][0],this.c=l[0][1],this.d=l[1][1],this.e=l[0][2],this.f=l[1][2],this},c.invert=function(){var a=this,c=a.a*a.d-a.b*a.c;return new b(a.d/c,-a.b/c,-a.c/c,a.a/c,(a.c*a.f-a.d*a.e)/c,(a.b*a.e-a.a*a.f)/c)},c.clone=function(){return new b(this.a,this.b,this.c,this.d,this.e,this.f)},c.translate=function(a,b){return this.add(1,0,0,1,a,b)},c.scale=function(a,b,c,d){return null==b&&(b=a),(c||d)&&this.add(1,0,0,1,c,d),this.add(a,0,0,b,0,0),(c||d)&&this.add(1,0,0,1,-c,-d),this},c.rotate=function(b,c,d){b=a.rad(b),c=c||0,d=d||0;var f=+e.cos(b).toFixed(9),g=+e.sin(b).toFixed(9);return this.add(f,g,-g,f,c,d),this.add(1,0,0,1,-c,-d)},c.x=function(a,b){return a*this.a+b*this.c+this.e},c.y=function(a,b){return a*this.b+b*this.d+this.f},c.get=function(a){return+this[d.fromCharCode(97+a)].toFixed(4)},c.toString=function(){return\"matrix(\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+\")\"},c.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},c.determinant=function(){return this.a*this.d-this.b*this.c},c.split=function(){var b={};b.dx=this.e,b.dy=this.f;var c=[[this.a,this.c],[this.b,this.d] ];b.scalex=e.sqrt(g(c[0])),h(c[0]),b.shear=c[0][0]*c[1][0]+c[0][1]*c[1][1],c[1]=[c[1][0]-c[0][0]*b.shear,c[1][1]-c[0][1]*b.shear],b.scaley=e.sqrt(g(c[1])),h(c[1]),b.shear/=b.scaley,this.determinant()<0&&(b.scalex=-b.scalex);var d=-c[0][1],f=c[1][1];return 0>f?(b.rotate=a.deg(e.acos(f)),0>d&&(b.rotate=360-b.rotate)):b.rotate=a.deg(e.asin(d)),b.isSimple=!(+b.shear.toFixed(9)||b.scalex.toFixed(9)!=b.scaley.toFixed(9)&&b.rotate),b.isSuperSimple=!+b.shear.toFixed(9)&&b.scalex.toFixed(9)==b.scaley.toFixed(9)&&!b.rotate,b.noRotation=!+b.shear.toFixed(9)&&!b.rotate,b},c.toTransformString=function(a){var b=a||this.split();return+b.shear.toFixed(9)?\"m\"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]:(b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4),(b.dx||b.dy?\"t\"+[+b.dx.toFixed(4),+b.dy.toFixed(4)]:f)+(1!=b.scalex||1!=b.scaley?\"s\"+[b.scalex,b.scaley,0,0]:f)+(b.rotate?\"r\"+[+b.rotate.toFixed(4),0,0]:f))}}(b.prototype),a.Matrix=b,a.matrix=function(a,c,d,e,f,g){return new b(a,c,d,e,f,g)}}),d.plugin(function(a,c,d,e,f){function g(d){return function(e){if(b.stop(),e instanceof f&&1==e.node.childNodes.length&&(\"radialGradient\"==e.node.firstChild.tagName||\"linearGradient\"==e.node.firstChild.tagName||\"pattern\"==e.node.firstChild.tagName)&&(e=e.node.firstChild,n(this).appendChild(e),e=l(e)),e instanceof c)if(\"radialGradient\"==e.type||\"linearGradient\"==e.type||\"pattern\"==e.type){e.node.id||p(e.node,{id:e.id});var g=q(e.node.id)}else g=e.attr(d);else if(g=a.color(e),g.error){var h=a(n(this).ownerSVGElement).gradient(e);h?(h.node.id||p(h.node,{id:h.id}),g=q(h.node.id)):g=e}else g=r(g);var i={};i[d]=g,p(this.node,i),this.node.style[d]=t}}function h(a){b.stop(),a==+a&&(a+=\"px\"),this.node.style.fontSize=a}function i(a){for(var b=[],c=a.childNodes,d=0,e=c.length;e>d;d++){var f=c[d];3==f.nodeType&&b.push(f.nodeValue),\"tspan\"==f.tagName&&b.push(1==f.childNodes.length&&3==f.firstChild.nodeType?f.firstChild.nodeValue:i(f))}return b}function j(){return b.stop(),this.node.style.fontSize}var k=a._.make,l=a._.wrap,m=a.is,n=a._.getSomeDefs,o=/^url\\(#?([^)]+)\\)$/,p=a._.$,q=a.url,r=String,s=a._.separator,t=\"\";b.on(\"snap.util.attr.mask\",function(a){if(a instanceof c||a instanceof f){if(b.stop(),a instanceof f&&1==a.node.childNodes.length&&(a=a.node.firstChild,n(this).appendChild(a),a=l(a)),\"mask\"==a.type)var d=a;else d=k(\"mask\",n(this)),d.node.appendChild(a.node);!d.node.id&&p(d.node,{id:d.id}),p(this.node,{mask:q(d.id)})}}),function(a){b.on(\"snap.util.attr.
"f+=g+\"]\",i[b]=f}return Function(\"val\",\"return Snap.path.toString.call([\"+i+\"])\")}function j(a){for(var b=[],c=0,d=a.length;d>c;c++)for(var e=1,f=a[c].length;f>e;e++)b.push(a[c][e]);return b}var k={},l=/[a-z]+$/i,m=String;k.stroke=k.fill=\"colour\",c.prototype.equal=function(a,c){return b(\"snap.util.equal\",this,a,c).firstDefined()},b.on(\"snap.util.equal\",function(b,c){var d,n,o=m(this.attr(b)||\"\"),p=this;if(o==+o&&c==+c)return{from:+o,to:+c,f:f};if(\"colour\"==k[b])return d=a.color(o),n=a.color(c),{from:[d.r,d.g,d.b,d.opacity],to:[n.r,n.g,n.b,n.opacity],f:h};if(\"transform\"==b||\"gradientTransform\"==b||\"patternTransform\"==b)return c instanceof a.Matrix&&(c=c.toTransformString()),a._.rgTransform.test(c)||(c=a._.svgTransform2string(c)),e(o,c,function(){return p.getBBox(1)});if(\"d\"==b||\"path\"==b)return d=a.path.toCubic(o,c),{from:j(d[0]),to:j(d[1]),f:i(d[0])};if(\"points\"==b)return d=m(o).split(a._.separator),n=m(c).split(a._.separator),{from:d,to:n,f:function(a){return a}};aUnit=o.match(l);var q=m(c).match(l);return aUnit&&aUnit==q?{from:parseFloat(o),to:parseFloat(c),f:g(aUnit)}:{from:this.asPX(b),to:this.asPX(b,c),f:f}})}),d.plugin(function(a,c,d,e){for(var f=c.prototype,g=\"hasOwnProperty\",h=(\"createTouch\"in e.doc),i=[\"click\",\"dblclick\",\"mousedown\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"touchstart\",\"touchmove\",\"touchend\",\"touchcancel\"],j={mousedown:\"touchstart\",mousemove:\"touchmove\",mouseup:\"touchend\"},k=(function(a,b){var c=\"y\"==a?\"scrollTop\":\"scrollLeft\",d=b&&b.node?b.node.ownerDocument:e.doc;return d[c in d.documentElement?\"documentElement\":\"body\"][c]}),l=function(){this.returnValue=!1},m=function(){return this.originalEvent.preventDefault()},n=function(){this.cancelBubble=!0},o=function(){return this.originalEvent.stopPropagation()},p=function(){return e.doc.addEventListener?function(a,b,c,d){var e=h&&j[b]?j[b]:b,f=function(e){var f=k(\"y\",d),i=k(\"x\",d);if(h&&j[g](b))for(var l=0,n=e.targetTouches&&e.targetTouches.length;n>l;l++)if(e.targetTouches[l].target==a||a.contains(e.targetTouches[l].target)){var p=e;e=e.targetTouches[l],e.originalEvent=p,e.preventDefault=m,e.stopPropagation=o;break}var q=e.clientX+i,r=e.clientY+f;return c.call(d,e,q,r)};return b!==e&&a.addEventListener(b,f,!1),a.addEventListener(e,f,!1),function(){return b!==e&&a.removeEventListener(b,f,!1),a.removeEventListener(e,f,!1),!0}}:e.doc.attachEvent?function(a,b,c,d){var e=function(a){a=a||d.node.ownerDocument.window.event;var b=k(\"y\",d),e=k(\"x\",d),f=a.clientX+e,g=a.clientY+b;return a.preventDefault=a.preventDefault||l,a.stopPropagation=a.stopPropagation||n,c.call(d,a,f,g)};a.attachEvent(\"on\"+b,e);var f=function(){return a.detachEvent(\"on\"+b,e),!0};return f}:void 0}(),q=[],r=function(a){for(var c,d=a.clientX,e=a.clientY,f=k(\"y\"),g=k(\"x\"),i=q.length;i--;){if(c=q[i],h){for(var j,l=a.touches&&a.touches.length;l--;)if(j=a.touches[l],j.identifier==c.el._drag.id||c.el.node.contains(j.target)){d=j.clientX,e=j.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();{var m=c.el.node;m.nextSibling,m.parentNode,m.style.display}d+=g,e+=f,b(\"snap.drag.move.\"+c.el.id,c.move_scope||c.el,d-c.el._drag.x,e-c.el._drag.y,d,e,a)}},s=function(c){a.unmousemove(r).unmouseup(s);for(var d,e=q.length;e--;)d=q[e],d.el._drag={},b(\"snap.drag.end.\"+d.el.id,d.end_scope||d.start_scope||d.move_scope||d.el,c);q=[]},t=i.length;t--;)!function(b){a[b]=f[b]=function(c,d){return a.is(c,\"function\")&&(this.events=this.events||[],this.events.push({name:b,f:c,unbind:p(this.node||document,b,c,d||this)})),this},a[\"un\"+b]=f[\"un\"+b]=function(a){for(var c=this.events||[],d=c.length;d--;)if(c[d].name==b&&(c[d].f==a||!a))return c[d].unbind(),c.splice(d,1),!c.length&&delete this.events,this;return this}}(i[t]);f.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},f.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var u=[];f.drag=function(c,d,e,f,g,h){function i(i,j,k){(i.originalEvent||i).preventDefault(),this._drag.x=j,this._drag.
"]]></script>\n",
"<script><![CDATA[\n",
"(function (glob, factory) {\n",
" if (typeof define === 'function' && define.amd) {\n",
" define('ProfileSVG', ['ProfileSVG/snap.svg'], function (Snap) {\n",
" return factory(Snap);\n",
" });\n",
" } else {\n",
" glob.ProfileSVG = factory(glob.Snap);\n",
" }\n",
"}(this, function (Snap) {\n",
" 'use strict';\n",
"\n",
" var supportsPassive = false;\n",
" try {\n",
" var opts = Object.defineProperty({}, 'passive', {\n",
" get: function () {\n",
" return supportsPassive = true;\n",
" }\n",
" });\n",
" window.addEventListener(\"testPassive\", null, opts);\n",
" window.removeEventListener(\"testPassive\", null, opts);\n",
" } catch (e) { // not supported\n",
" }\n",
"\n",
" var stopper = function (e) {\n",
" e.preventDefault();\n",
" e.stopPropagation();\n",
" };\n",
"\n",
" var throttle = function (delay, filter, callback) {\n",
" var previousCall = new Date().getTime();\n",
" return function (e) {\n",
" var time = new Date().getTime();\n",
" if ((time - previousCall) >= delay) {\n",
" previousCall = time;\n",
" callback.apply(null, arguments);\n",
" }\n",
" filter(e);\n",
" };\n",
" };\n",
"\n",
"\n",
" var ProfileSVG = {};\n",
"\n",
" var NS_SVG = 'http://www.w3.org/2000/svg';\n",
" var DEFAULT_TRANSITION_TIME = 300;\n",
" var ZOOM_STEP = 1.4;\n",
" var VIEWPORT_SCALE = 0.9;\n",
" var VIEWPORT_MARGIN_X = 20;\n",
"\n",
" var formatText = function (fig, text, availableWidth) {\n",
" if (availableWidth < 3 * fig.charWidthM) {\n",
" return '';\n",
" }\n",
" var w = availableWidth;\n",
" var m = fig.charWidthM;\n",
" var n = fig.charWidthN;\n",
" var m2 = m * m;\n",
" var n2 = n * n;\n",
" var nc = 0.5 / n2 * (\n",
" (n - m) * Math.sqrt(n2 + (4 * w - 2 * m) * n + m2) + n2 + 2 * (w - m) * n + m2);\n",
" var nchars = Math.ceil(nc);\n",
" if (text.length <= nchars) {\n",
" return text;\n",
" }\n",
" return text.slice(0, nchars - 2) + '..';\n",
" };\n",
"\n",
" var unescapeHtml = function (str) {\n",
" return str\n",
" .replace(/</g, '<')\n",
" .replace(/>/g, '>')\n",
" .replace(/&/g, '&');\n",
" };\n",
"\n",
" var isDarkColor = function (c) {\n",
" var m = c.match(/^rgba?\\(\\s*(\\d+)[\\s,]+(\\d+)[\\s,]+(\\d+)/);\n",
" if (m) {\n",
" return m[1] * 299 + m[2] * 587 + m[3] * 114 < 255 * 650;\n",
" }\n",
" m = c.match(/^#([\\dA-F]{2})([\\dA-F]{2})([\\dA-F]{2})/i);\n",
" if (m) {\n",
" var r = parseInt(m[1], 16);\n",
" var g = parseInt(m[2], 16);\n",
" var b = parseInt(m[3], 16);\n",
" return r * 299 + g * 587 + b * 114 < 255 * 650;\n",
" }\n",
" return true;\n",
" };\n",
"\n",
" ProfileSVG.moveAndZoom = function (targetFocusX, targetScaleX, fig, deltaT) {\n",
" if (typeof deltaT === 'undefined') {\n",
" deltaT = DEFAULT_TRANSITION_TIME;\n",
" }\n",
"\n",
" var targetFocusY = fig.cy;\n",
" var targetScaleY = 1;\n",
"\n",
" // TODO: dynamically update the transformation while dragging\n",
" var mat = fig.viewport.node.transform.baseVal.consolidate().matrix;\n",
"\n",
" var oldScaleX = mat.a;\n",
" var oldScaleY = mat.d;\n",
" var oldE = mat.e;\n",
" var oldF = mat.f;\n",
"\n",
" var targetE = fig.cx - targetScaleX * targetFocusX;\n",
" var targetF = fig.cy - targetScaleY * targetFocusY;\n",
"\n",
" fig.focusX = targetFocusX;\n",
" fig.focusY = targetFocusY;\n",
" fig.scaleX = targetScaleX;\n",
" fig.scaleY = targetScaleY;\n",
"\n",
" var rects = undefined;\n",
" var pathrects = undefined;\n",
" if (fig.roundradius > 0) {\n",
" rects = fig.viewport.selectAll('rect');\n",
" } else {\n",
" pathrects = fig.viewport.selectAll('path');\n",
" }\n",
"\n",
" var scaleViewport = function (step) {\n",
" var scaleX = oldScaleX + (targetScaleX - oldScaleX) * step;\n",
" var scaleY = oldScaleY + (targetScaleY - oldScaleY) * step;\n",
"\n",
" var rMatrix = fig.viewport.node.transform.baseVal.consolidate().matrix;\n",
" rMatrix.a = scaleX;\n",
" rMatrix.d = scaleY;\n",
" rMatrix.e = oldE + (targetE - oldE) * step; // TransX\n",
" rMatrix.f = oldF + (targetF - oldF) * step; // TransY\n",
"\n",
" if (rects) {\n",
" rects.forEach(function (r) {\n",
" var rect = r.node;\n",
" rect.setAttribute('rx', Math.max(0.0, fig.roundradius / scaleX));\n",
" rect.setAttribute('ry', Math.max(0.0, fig.roundradius / scaleY));\n",
" });\n",
" }\n",
" };\n",
"\n",
" var finish = function () {\n",
" scaleViewport(1);\n",
" var scaleXt = 1.0 / targetScaleX;\n",
" var scaleYt = 1.0 / targetScaleY;\n",
" var updateText = function (text, x, y, w, shortinfo) {\n",
" var tMatrix = text.transform.baseVal.getItem(0).matrix;\n",
" tMatrix.a = scaleXt;\n",
" tMatrix.d = scaleYt;\n",
" tMatrix.e = (1.0 - scaleXt) * x;\n",
" tMatrix.f = (1.0 - scaleYt) * y;\n",
"\n",
" text.firstChild.nodeValue = formatText(fig, shortinfo, w / scaleXt);\n",
" text.style.display = 'inherit';\n",
" };\n",
" if (rects) {\n",
" rects.forEach(function (r) {\n",
" var rect = r.node;\n",
" var x = rect.x.baseVal.value;\n",
" var y = rect.y.baseVal.value;\n",
" var w = rect.width.baseVal.value;\n",
" var shortinfo = rect.getAttribute('data-shortinfo');\n",
" updateText(rect.nextElementSibling, x, y, w, shortinfo);\n",
" });\n",
" }\n",
" if (pathrects) {\n",
" pathrects.forEach(function (p) {\n",
" var path = p.node;\n",
" // The API compatibility of path segments is problematic.\n",
" var d = path.getAttribute('d');\n",
" var values = d.match(/^M\\s*([\\d.]+)[\\s,]+(-?[\\d.]+)[^h]+h\\s*([\\d.]+)/);\n",
" var x = Number(values[1]);\n",
" var y = Number(values[2]);\n",
" var w = Number(values[3]);\n",
" var shortinfo = path.getAttribute('data-shortinfo');\n",
" updateText(path.nextElementSibling, x, y, w, shortinfo);\n",
" });\n",
" }\n",
" };\n",
"\n",
" if (deltaT != 0) {\n",
" if (!fig.notext) {\n",
" fig.viewport.selectAll('text').forEach(function (text) {\n",
" text.node.style.display = 'none';\n",
" });\n",
" }\n",
" Snap.animate(0, 1, scaleViewport, deltaT, null, fig.notext ? null : finish);\n",
" } else {\n",
" if (!fig.notext) {\n",
" finish();\n",
" }\n",
" }\n",
"\n",
" };\n",
"\n",
" ProfileSVG.reset = function (fig) {\n",
" var w = fig.width - VIEWPORT_MARGIN_X;\n",
" var targetScaleX = fig.width / w * VIEWPORT_SCALE;\n",
" ProfileSVG.moveAndZoom(fig.cx, targetScaleX, fig);\n",
" };\n",
"\n",
" ProfileSVG.initialize = function (figId) {\n",
"\n",
" var svg = Snap.select('#' + figId);\n",
" var fig = {};\n",
" fig.id = figId;\n",
"\n",
" var bg = svg.select('#' + figId + '-bg');\n",
" var bbox = bg.getBBox();\n",
" fig.width = bbox.width;\n",
" fig.height = bbox.height;\n",
" fig.cx = fig.width / 2;\n",
" fig.cy = fig.height / 2;\n",
"\n",
" fig.viewport = svg.select('#' + figId + '-viewport');\n",
"\n",
" fig.xstep = fig.viewport.node.getAttribute('data-xstep');\n",
" fig.tunit = fig.viewport.node.getAttribute('data-tunit');\n",
" fig.delay = fig.viewport.node.getAttribute('data-delay');\n",
"\n",
" var texts = fig.viewport.selectAll('text');\n",
" fig.notext = false;\n",
" if (texts[0]) {\n",
" fig.notext = getComputedStyle(texts[0].node).strokeOpacity == 0.0;\n",
" texts.forEach(function (text) {\n",
" text.node.style.display = 'none';\n",
" });\n",
" }\n",
" texts = null;\n",
"\n",
" fig.roundradius = 0.0;\n",
" var rect = fig.viewport.select('rect');\n",
" if (rect) {\n",
" fig.roundradius = rect.node.rx.baseVal.value;\n",
" }\n",
"\n",
" fig.scaleX = 1.0;\n",
" fig.scaleY = 1.0; // prepare for the future\n",
" fig.focusX = fig.cx; // center x in the raw (scaleX=1) coordinate space\n",
" fig.focusY = fig.cy; // center y in the raw (scaleY=1) coordinate space\n",
"\n",
" var textBg = document.createElementNS(NS_SVG, 'rect');\n",
" var detail = document.createElementNS(NS_SVG, 'text');\n",
" var time = document.createElementNS(NS_SVG, 'text');\n",
" detail.style.visibility = 'hidden';\n",
" detail.textContent = 'MOw';\n",
" fig.viewport.node.parentNode.appendChild(textBg);\n",
" fig.viewport.node.parentNode.appendChild(detail);\n",
" fig.viewport.node.parentNode.appendChild(time);\n",
" var mBBox = detail.getBBox();\n",
" fig.charWidthM = mBBox.width / 3;\n",
" detail.textContent = 'night';\n",
" var nBBox = detail.getBBox();\n",
" fig.charWidthN = nBBox.width / 5;\n",
" fig.textHeight = nBBox.height;\n",
" detail.style.display = 'none';\n",
" detail.style.visibility = 'visible';\n",
"\n",
" detail.setAttribute('id', figId + '-details');\n",
" detail.setAttribute('x', fig.charWidthM);\n",
" detail.setAttribute('y', fig.height - fig.textHeight * 0.75);\n",
"\n",
" time.setAttribute('x', fig.width - fig.charWidthM * 10);\n",
" time.setAttribute('y', fig.height - fig.textHeight * 0.75);\n",
"\n",
" textBg.setAttribute('x', 0);\n",
" textBg.setAttribute('y', fig.height - fig.textHeight * 2);\n",
" textBg.setAttribute('width', fig.width);\n",
" textBg.setAttribute('height', fig.textHeight * 2);\n",
" var textBgFill = getComputedStyle(textBg).fill;\n",
" if (textBgFill == \"rgba(0, 0, 0, 0)\" || textBgFill == \"transparent\") {\n",
" var isDark = isDarkColor(getComputedStyle(detail).fill);\n",
" textBg.style.fill = isDark ? 'white' : 'black';\n",
" }\n",
" textBg.style.display = 'none';\n",
"\n",
" ProfileSVG.reset(fig);\n",
"\n",
" var rectDblClickHandler = function (e) {\n",
" var bbox = e.target.getBBox();\n",
" var cx = bbox.x + bbox.width / 2;\n",
" var targetScaleX = fig.width / bbox.width * VIEWPORT_SCALE;\n",
" ProfileSVG.moveAndZoom(cx, targetScaleX, fig);\n",
" };\n",
"\n",
" var rectMouseOverHandler = function (e) {\n",
" var rect = e.target;\n",
" var text = rect.nextElementSibling;\n",
" var details = document.getElementById(fig.id + '-details');\n",
" text.style.strokeWidth = '1';\n",
" var sinfo = rect.getAttribute('data-shortinfo');\n",
" var dir = rect.getAttribute('data-dinfo');\n",
" var i = sinfo.indexOf(' in ');\n",
" var func = sinfo.slice(0, i + 4);\n",
" var file = sinfo.slice(i + 4);\n",
" var time = details.nextElementSibling;\n",
" details.textContent = 'Function: ' + func + dir + file;\n",
" details.style.display = 'inherit';\n",
" if (fig.delay) {\n",
" var count = Math.round(rect.width.baseVal.value / fig.xstep);\n",
" var t = count * (fig.tunit === 's' ? fig.delay :\n",
" fig.tunit === 'ms' ? fig.delay * 1e3 :\n",
" fig.tunit === 'us' || fig.tunit === 'μs' ? fig.delay * 1e6 : 1);\n",
" var tp = Math.round(t * 1000) / 1000;\n",
" time.textContent = 'Time: ' + tp + ' ' + fig.tunit;\n",
" time.style.display = 'inherit';\n",
" }\n",
" details.previousElementSibling.style.display = 'inherit';\n",
" };\n",
" var rectMouseOutHandler = function (e) {\n",
" var rect = e.target;\n",
" var text = rect.nextElementSibling;\n",
" var details = document.getElementById(fig.id + '-details');\n",
" text.style.strokeWidth = '0';\n",
" details.style.display = 'none';\n",
" details.previousElementSibling.style.display = 'none';\n",
" details.nextElementSibling.style.display = 'none';\n",
" };\n",
"\n",
" var rects = fig.viewport.selectAll(fig.roundradius > 0 ? 'rect' : 'path');\n",
" rects.forEach(function (r) {\n",
" var rect = r.node;\n",
" var text = rect.nextElementSibling;\n",
" rect.setAttribute('data-shortinfo', unescapeHtml(text.textContent));\n",
" var dir = unescapeHtml(rect.getAttribute('data-dinfo'));\n",
" rect.setAttribute('data-dinfo', dir);\n",
" rect.addEventListener('dblclick', rectDblClickHandler, false);\n",
" rect.addEventListener('mouseover', rectMouseOverHandler, false);\n",
" rect.addEventListener('mouseout', rectMouseOutHandler, false);\n",
" var transform = svg.node.createSVGTransform();\n",
" text.transform.baseVal.initialize(transform); // matrix(1, 0, 0, 1, 0, 0)\n",
" });\n",
" rects = null;\n",
"\n",
" bg.dblclick(function () {\n",
" ProfileSVG.reset(fig);\n",
" });\n",
"\n",
" var mouseWheelHandler = throttle(400, stopper, function (e) {\n",
" var delta = Math.round(e.deltaY * 100);\n",
" if (delta == 0) {\n",
" return;\n",
" }\n",
" var scale = delta < 0 ? ZOOM_STEP : 1 / ZOOM_STEP;\n",
"\n",
" var clientRect = svg.node.getBoundingClientRect();\n",
" var mx = e.clientX - clientRect.left;\n",
" //var my = e.clientY - clientRect.top;\n",
" var ctm = svg.node.getCTM();\n",
" var x = ctm ? (mx - ctm.e) / ctm.a : mx;\n",
" //var y = ctm ? (my - ctm.f) / ctm.d : my;\n",
" var px = (x - fig.cx) / fig.scaleX + fig.focusX;\n",
" var targetScaleX = Math.max(fig.scaleX * scale, 0.01);\n",
" var targetFocusX = fig.scaleX / targetScaleX * (fig.focusX - px) + px;\n",
" ProfileSVG.moveAndZoom(targetFocusX, targetScaleX, fig, 400);\n",
" });\n",
"\n",
" svg.node.addEventListener('wheel', mouseWheelHandler, supportsPassive ? {\n",
" passive: false\n",
" } : false);\n",
"\n",
" fig.viewport.drag();\n",
" };\n",
"\n",
" return ProfileSVG;\n",
"}));\n",
"\n",
"]]></script>\n",
"<script><![CDATA[\n",
"if (typeof require === 'function' && define.amd) {\n",
" require(['ProfileSVG'], function (ProfileSVG) {\n",
" ProfileSVG.initialize(\"fig-ea48ff6b8eb24d469d4136cfff400afd\");\n",
" });\n",
"} else {\n",
" ProfileSVG.initialize(\"fig-ea48ff6b8eb24d469d4136cfff400afd\");\n",
"}\n",
"]]></script>\n",
"</svg>\n",
"</body>\n",
"</html>\n"
],
"text/plain": [
"ProfileSVG.FGConfig(Node(FlameGraphs.NodeData(ip:0x0, 0x01, 1:382)), Dict{Symbol, Any}(), FlameGraphs.FlameColors(ColorTypes.RGB{FixedPointNumbers.N0f8}[RGB{N0f8}(0.882,0.698,1.0), RGB{N0f8}(0.435,0.863,0.569), RGB{N0f8}(0.0,0.71,0.545), RGB{N0f8}(0.173,0.639,1.0)], RGB{N0f8}(1.0,1.0,1.0), RGB{N0f8}(0.0,0.0,0.0), ColorTypes.RGB{FixedPointNumbers.N0f8}[RGB{N0f8}(0.953,0.0,0.302), RGB{N0f8}(0.894,0.0,0.255), RGB{N0f8}(0.831,0.129,0.216), RGB{N0f8}(0.773,0.192,0.184)], ColorTypes.RGB{FixedPointNumbers.N0f8}[RGB{N0f8}(1.0,0.627,0.0), RGB{N0f8}(1.0,0.643,0.0), RGB{N0f8}(0.965,0.651,0.039), RGB{N0f8}(0.894,0.655,0.11)]), :fcolor, :fcolor, 1.0, false, 50, 2000, 960.0, 0.0, 2.0, \"inherit\", 12.0, false, :none, 0.001)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"A = a\n",
"@profview qrhous!(A) \\ y"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "fb2484bd-fd33-4b42-bc14-1006c4d9811d",
"metadata": {},
"outputs": [],
"source": [
"include(\"housQR.jl\")\n",
"using .housQR"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "eb827167-7fa3-4106-9bac-71a3c237ad5b",
2023-11-12 18:21:13 +01:00
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2023-11-12 21:16:54 +01:00
"2-element Vector{Float64}:\n",
2023-11-20 15:28:24 +01:00
" 5.810770900369532e-16\n",
" 0.4999999999999994"
2023-11-12 18:21:13 +01:00
]
},
2023-11-20 15:28:24 +01:00
"execution_count": 5,
2023-11-12 18:21:13 +01:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
2023-11-20 15:28:24 +01:00
"A = [1. 2; 3 4; 5 6]\n",
"qr = qrfact(A)\n",
"\n",
"A \\ [1., 2, 3]"
2023-11-12 21:16:54 +01:00
]
},
{
"cell_type": "code",
2023-11-20 15:28:24 +01:00
"execution_count": 9,
"id": "41d9dca0-6880-4133-8dc3-c35d5c0c9a49",
2023-11-12 21:16:54 +01:00
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2023-11-20 15:28:24 +01:00
"BenchmarkTools.Trial: 21 samples with 1 evaluation.\n",
" Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m222.384 ms\u001b[22m\u001b[39m … \u001b[35m274.339 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m14.47% … 24.11%\n",
" Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m250.843 ms \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m18.85%\n",
" Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ \u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m245.919 ms\u001b[22m\u001b[39m ± \u001b[32m 16.588 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ \u001b[90m): \u001b[39m19.02% ± 2.58%\n",
"\n",
" \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▃\u001b[39m▃\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[34m \u001b[39m\u001b[39m█\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▃\u001b[39m \u001b[39m \n",
" \u001b[39m▇\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m█\u001b[39m█\u001b[39m▇\u001b[39m▇\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▇\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▇\u001b[32m▁\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[34m▇\u001b[39m\u001b[39m█\u001b[39m▇\u001b[39m▁\u001b[39m▇\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▇\u001b[39m▁\u001b[39m▇\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▇\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▇\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m█\u001b[39m \u001b[39m▁\n",
" 222 ms\u001b[90m Histogram: frequency by time\u001b[39m 274 ms \u001b[0m\u001b[1m<\u001b[22m\n",
"\n",
" Memory estimate\u001b[90m: \u001b[39m\u001b[33m1.54 GiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m4617\u001b[39m."
2023-11-12 21:16:54 +01:00
]
},
2023-11-20 15:28:24 +01:00
"execution_count": 9,
2023-11-12 21:16:54 +01:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
2023-11-20 15:28:24 +01:00
"@benchmark qrfact($A) \\ $y"
2023-11-12 18:21:13 +01:00
]
2023-11-20 15:28:24 +01:00
},
{
"cell_type": "code",
"execution_count": null,
"id": "f505daf2-0a23-415a-bfb7-b282acee8294",
"metadata": {},
"outputs": [],
"source": []
2023-11-12 18:21:13 +01:00
}
],
"metadata": {
"kernelspec": {
2023-11-20 15:28:24 +01:00
"display_name": "Julia 1.9.4",
2023-11-12 18:21:13 +01:00
"language": "julia",
"name": "julia-1.9"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
2023-11-20 15:28:24 +01:00
"version": "1.9.4"
2023-11-12 18:21:13 +01:00
}
},
"nbformat": 4,
"nbformat_minor": 5
}