Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save genkuroki/1ac59bb3e03eac12945d7040d4f98246 to your computer and use it in GitHub Desktop.
Save genkuroki/1ac59bb3e03eac12945d7040d4f98246 to your computer and use it in GitHub Desktop.
Julia言語で計算が遅くなった場合の解決法
{
"cells": [
{
"metadata": {
"toc": "true"
},
"cell_type": "markdown",
"source": "<h1>Table of Contents<span class=\"tocSkip\"></span></h1>\n<div class=\"toc\"><ul class=\"toc-item\"><li><span><a href=\"#Julia言語で計算が遅くなった場合の解決法\" data-toc-modified-id=\"Julia言語で計算が遅くなった場合の解決法-1\"><span class=\"toc-item-num\">1&nbsp;&nbsp;</span>Julia言語で計算が遅くなった場合の解決法</a></span><ul class=\"toc-item\"><li><span><a href=\"#トップレベルにコードを書くと遅くなる\" data-toc-modified-id=\"トップレベルにコードを書くと遅くなる-1.1\"><span class=\"toc-item-num\">1.1&nbsp;&nbsp;</span>トップレベルにコードを書くと遅くなる</a></span><ul class=\"toc-item\"><li><span><a href=\"#函数の中に入れるだけで大幅に速くなる.\" data-toc-modified-id=\"函数の中に入れるだけで大幅に速くなる.-1.1.1\"><span class=\"toc-item-num\">1.1.1&nbsp;&nbsp;</span>函数の中に入れるだけで大幅に速くなる.</a></span></li></ul></li><li><span><a href=\"#変数の型が途中で変わるような書き方をすると遅くなる場合がある\" data-toc-modified-id=\"変数の型が途中で変わるような書き方をすると遅くなる場合がある-1.2\"><span class=\"toc-item-num\">1.2&nbsp;&nbsp;</span>変数の型が途中で変わるような書き方をすると遅くなる場合がある</a></span><ul class=\"toc-item\"><li><span><a href=\"#スカラー変数の初期化\" data-toc-modified-id=\"スカラー変数の初期化-1.2.1\"><span class=\"toc-item-num\">1.2.1&nbsp;&nbsp;</span>スカラー変数の初期化</a></span></li><li><span><a href=\"#配列変数の初期化\" data-toc-modified-id=\"配列変数の初期化-1.2.2\"><span class=\"toc-item-num\">1.2.2&nbsp;&nbsp;</span>配列変数の初期化</a></span></li><li><span><a href=\"#型指定をしていないことが原因で遅くなることがある.\" data-toc-modified-id=\"型指定をしていないことが原因で遅くなることがある.-1.2.3\"><span class=\"toc-item-num\">1.2.3&nbsp;&nbsp;</span>型指定をしていないことが原因で遅くなることがある.</a></span></li><li><span><a href=\"#Julia特有の変数の初期化の仕方\" data-toc-modified-id=\"Julia特有の変数の初期化の仕方-1.2.4\"><span class=\"toc-item-num\">1.2.4&nbsp;&nbsp;</span>Julia特有の変数の初期化の仕方</a></span><ul class=\"toc-item\"><li><span><a href=\"#例:-y-=-one(h)\" data-toc-modified-id=\"例:-y-=-one(h)-1.2.4.1\"><span class=\"toc-item-num\">1.2.4.1&nbsp;&nbsp;</span>例: <code>y = one(h)</code></a></span></li><li><span><a href=\"#例:-y-=-Array{typeof(h)}(N+1)\" data-toc-modified-id=\"例:-y-=-Array{typeof(h)}(N+1)-1.2.4.2\"><span class=\"toc-item-num\">1.2.4.2&nbsp;&nbsp;</span>例: <code>y = Array{typeof(h)}(N+1)</code></a></span></li></ul></li></ul></li><li><span><a href=\"#大域変数を含む函数は遅くなる\" data-toc-modified-id=\"大域変数を含む函数は遅くなる-1.3\"><span class=\"toc-item-num\">1.3&nbsp;&nbsp;</span>大域変数を含む函数は遅くなる</a></span><ul class=\"toc-item\"><li><span><a href=\"#大域変数を含む函数は非常に遅くなることがある.\" data-toc-modified-id=\"大域変数を含む函数は非常に遅くなることがある.-1.3.1\"><span class=\"toc-item-num\">1.3.1&nbsp;&nbsp;</span>大域変数を含む函数は非常に遅くなることがある.</a></span></li><li><span><a href=\"#大域変数を含む函数は大域変数に型宣言を付けると速くなる.\" data-toc-modified-id=\"大域変数を含む函数は大域変数に型宣言を付けると速くなる.-1.3.2\"><span class=\"toc-item-num\">1.3.2&nbsp;&nbsp;</span>大域変数を含む函数は大域変数に型宣言を付けると速くなる.</a></span></li><li><span><a href=\"#全体を函数の中に入れると速くなる.\" data-toc-modified-id=\"全体を函数の中に入れると速くなる.-1.3.3\"><span class=\"toc-item-num\">1.3.3&nbsp;&nbsp;</span>全体を函数の中に入れると速くなる.</a></span></li><li><span><a href=\"#closureを使っても速くなる.\" data-toc-modified-id=\"closureを使っても速くなる.-1.3.4\"><span class=\"toc-item-num\">1.3.4&nbsp;&nbsp;</span>closureを使っても速くなる.</a></span></li><li><span><a href=\"#大域変数を定数に変えても速くなる.\" data-toc-modified-id=\"大域変数を定数に変えても速くなる.-1.3.5\"><span class=\"toc-item-num\">1.3.5&nbsp;&nbsp;</span>大域変数を定数に変えても速くなる.</a></span></li><li><span><a href=\"#パラメーターの型が確定している-function-like-object-は速い.\" data-toc-modified-id=\"パラメーターの型が確定している-function-like-object-は速い.-1.3.6\"><span class=\"toc-item-num\">1.3.6&nbsp;&nbsp;</span>パラメーターの型が確定している function-like object は速い.</a></span></li><li><span><a href=\"#function-like-object-(=パラメーター付き函数)の作り方\" data-toc-modified-id=\"function-like-object-(=パラメーター付き函数)の作り方-1.3.7\"><span class=\"toc-item-num\">1.3.7&nbsp;&nbsp;</span>function-like object (=パラメーター付き函数)の作り方</a></span></li></ul></li><li><span><a href=\"#配列を使うときには無用にメモリを消費するように書くと遅くなる.\" data-toc-modified-id=\"配列を使うときには無用にメモリを消費するように書くと遅くなる.-1.4\"><span class=\"toc-item-num\">1.4&nbsp;&nbsp;</span>配列を使うときには無用にメモリを消費するように書くと遅くなる.</a></span><ul class=\"toc-item\"><li><span><a href=\"#dot-syntax-と-in-place-計算を使う.--@.マクロの使い方.\" data-toc-modified-id=\"dot-syntax-と-in-place-計算を使う.--@.マクロの使い方.-1.4.1\"><span class=\"toc-item-num\">1.4.1&nbsp;&nbsp;</span>dot syntax と in-place 計算を使う. <code>@.</code>マクロの使い方.</a></span></li><li><span><a href=\"#注意:配列への代入と配列の要素への代入の違い\" data-toc-modified-id=\"注意:配列への代入と配列の要素への代入の違い-1.4.2\"><span class=\"toc-item-num\">1.4.2&nbsp;&nbsp;</span>注意:配列への代入と配列の要素への代入の違い</a></span></li><li><span><a href=\"#@view-および--@views-を使う.\" data-toc-modified-id=\"@view-および--@views-を使う.-1.4.3\"><span class=\"toc-item-num\">1.4.3&nbsp;&nbsp;</span><code>@view</code> および <code>@views</code> を使う.</a></span></li><li><span><a href=\"#さらに-@inline-をつけると効率が大幅改善する場合がある.\" data-toc-modified-id=\"さらに-@inline-をつけると効率が大幅改善する場合がある.-1.4.4\"><span class=\"toc-item-num\">1.4.4&nbsp;&nbsp;</span>さらに <code>@inline</code> をつけると効率が大幅改善する場合がある.</a></span></li><li><span><a href=\"#forループに展開するともっと速い.\" data-toc-modified-id=\"forループに展開するともっと速い.-1.4.5\"><span class=\"toc-item-num\">1.4.5&nbsp;&nbsp;</span>forループに展開するともっと速い.</a></span></li><li><span><a href=\"#場合によってはforループに展開してしまう.\" data-toc-modified-id=\"場合によってはforループに展開してしまう.-1.4.6\"><span class=\"toc-item-num\">1.4.6&nbsp;&nbsp;</span>場合によってはforループに展開してしまう.</a></span></li><li><span><a href=\"#具体例へのリンク\" data-toc-modified-id=\"具体例へのリンク-1.4.7\"><span class=\"toc-item-num\">1.4.7&nbsp;&nbsp;</span>具体例へのリンク</a></span></li></ul></li></ul></li></ul></div>"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "# Julia言語で計算が遅くなった場合の解決法\n\n黒木玄\n\n2018-01-12~2018-01-19\n\n* Copyright 2018 Gen Kuroki\n* License: MIT https://opensource.org/licenses/MIT\n\n**基本文献:**\n\n* https://docs.julialang.org/en/stable/manual/performance-tips/\n\n* http://myenigma.hatenablog.com/entry/2017/08/22/093953 (日本語訳)\n\n**普遍的な対処法:**\n\n* `@code_warntype` マクロを使ってJulia言語による型推定が十分に成功しているかを確認し, もしも赤字の警告が出ていたならば, 「Julia言語は函数の引数の型から他の変数の型を推定しようとすること」を思い出して, 型推定ができないもしくは難しい書き方をしていないかに注意を払う.\n\n\n* `@time` マクロで計算時間だけではなく, メモリ消費量も確認する. メモリ消費量が異様に大きい場合にはどこかで「失敗」してしまっている可能性が高い. 配列に大量にアクセスするプログラムを書いているときには特に注意する.\n\n関連の Jupyter notebook が以下の場所にあるが, それらは更新されない可能性が高いので注意して欲しい.\n\n* <a href=\"http://nbviewer.jupyter.org/gist/genkuroki/2a728d7f2c33d630d17af77c84b192ce\">要素の型指定無しの空配列a=[]にpush!しまくると遅くなる</a>\n* <a href=\"http://nbviewer.jupyter.org/gist/genkuroki/739fa4f0e84590bea85ff403a302046e\">大域変数を含む函数は遅くなる</a>\n* <a href=\"http://nbviewer.jupyter.org/gist/genkuroki/7716090b79e0281d46a3ca3d284fc93e\">定数を含む函数と函数的オブジェクト</a>\n* <a href=\"http://nbviewer.jupyter.org/gist/genkuroki/44e62dfa12e5fcdc93296501138c8267\">色々なsum</a>\n* <a href=\"http://nbviewer.jupyter.org/gist/genkuroki/741c0b8633f9837e4691cf4845dd65c6\">a = [1, 2] と a[1], a[2] = 1, 2 の違い</a>\n* <a href=\"http://nbviewer.jupyter.org/gist/genkuroki/d5f8a827dc6486572c3445850a8a830e\">変数を適切な型で初期化することについて</a>\n* <a href=\"http://nbviewer.jupyter.org/gist/genkuroki/799b4f2f5b081cfd4c7fca02fcffa23d\">Julia言語における配列の扱い方について</a>\n"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "versioninfo()",
"execution_count": 1,
"outputs": [
{
"output_type": "stream",
"text": "Julia Version 0.6.4\nCommit 9d11f62bcb* (2018-07-09 19:09 UTC)\nPlatform Info:\n OS: Windows (x86_64-w64-mingw32)\n CPU: Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz\n WORD_SIZE: 64\n BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell MAX_THREADS=16)\n LAPACK: libopenblas64_\n LIBM: libopenlibm\n LLVM: libLLVM-3.9.1 (ORCJIT, haswell)\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Julia言語のバージョンが上がるとこのノートの内容は無意味になっているかもしれないので注意!"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# Pkg.add(\"BenchmarkTools\")\n#\nusing BenchmarkTools\n\n# http://nbviewer.jupyter.org/gist/genkuroki/81de23edcae631a995e19a2ecf946a4f\n# の第1.6.1節を見よ.\n#\n# ENV[\"PYTHON\"]=\"C:\\\\Anaconda3\\\\python.exe\" # ← 自分の環境の合わせて変える\n# Pkg.add(\"PyPlot\")\n#\nusing PyPlot",
"execution_count": 2,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## トップレベルにコードを書くと遅くなる\n\n**解決法: 函数の中にコードを書く.**\n\nテスト用にトップレベルに書いたコードを function main() と end で囲むだけで計算が大幅に速くなる.\n\nJulia言語について, トップレベルに書いたコードで計算速度を計測することは **禁忌** である."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "以下は微分方程式 $y'=iy$, $y(0)=1$ の解に関する $y(2\\pi)$ の計算. 解は $y(t) = e^{it}$ なので, 計算結果は 1 に近くならなければいけない."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### 函数の中に入れるだけで大幅に速くなる."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 非常に遅い.\n\nN = 10^8\nh = 2π/N\ny = 1.0 + 0.0im # ← y を複素数の 1 で初期化\n@time for i in 1:N\n y += h*im*y # Julia言語では虚数単位を im と書く\nend\ny",
"execution_count": 3,
"outputs": [
{
"output_type": "stream",
"text": " 22.299007 seconds (600.00 M allocations: 14.901 GiB, 5.71% gc time)\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 3,
"data": {
"text/plain": "1.0000001973920172 + 8.725669089740029e-15im"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 函数の中に入れるだけで大幅に速くなる.\n\nfunction test_of_integration()\n N = 10^8\n h = 2π/N\n y = 1.0 + 0.0im # ← y を複素数の 1 で初期化\n for i in 1:N\n y += h*im*y\n end\n y\nend\n\ntest_of_integration()\n@show @time test_of_integration()\n\n# コードを函数の中に入れたら, 常に @code_warntype で確認するようにする.\n# 注意が必要な部分は赤字で表示される.\n#println()\n#@code_warntype test_of_integration()",
"execution_count": 4,
"outputs": [
{
"output_type": "stream",
"text": " 0.386474 seconds (17 allocations: 1.063 KiB)\n@time(test_of_integration()) = 1.0000001973920172 + 8.725669089740029e-15im\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 4,
"data": {
"text/plain": "1.0000001973920172 + 8.725669089740029e-15im"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## 変数の型が途中で変わるような書き方をすると遅くなる場合がある\n\n**解決法: 変数の型が途中で変化してしまうような書き方をしない.**\n\nJulia言語がある程度面倒を見てくれるので, 徹底した神経質さは必要ない.\n\n不安な場合には `@code_warntype` マクロで赤字の警告が出ないかどうか確認すればよいだろう."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "以下の2つのセルを見ればわかるように, `y = 1.0 + 0.0im` と `y` を複素数を代入するべきところを, `y = 1` と整数を代入したり, `y = 1.0` と実数(浮動小数点数)を代入したりすると遅くなる. 特に新たに変数を確保(初期化)するきには注意した方がよい. (Julia言語がある程度面倒を見てくれるので, 完璧に神経質になる必要はない.)"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### スカラー変数の初期化"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# y = 1.0 + 0.0im を y = 1 に書き換えただけで大幅に遅くなる.\n\nfunction test_of_integration_slow1()\n N = 10^8\n h = 2π/N # ← 厳密には h = Complex{Float64}(2π/N) と書くべきだがそうする必要はない.\n y = 1 # ← y = 1 は y を整数 1 にするという意味. y = 1.0 + 0.0im と書くべき.\n for i in 1:N\n y += h*im*y # ← y は整数変数だったはずなのに複素数を足している.\n end\n y\nend\n\ntest_of_integration_slow1()\n@show @time test_of_integration_slow1()\n\n# y が複素変数なのか整数変数なのかわからない状態になってしまっている.\nprintln()\n@code_warntype test_of_integration_slow1()",
"execution_count": 5,
"outputs": [
{
"output_type": "stream",
"text": " 5.346556 seconds (600.00 M allocations: 16.391 GiB, 18.51% gc time)\n@time(test_of_integration_slow1()) = 1.0000001973920172 + 8.725669089740029e-15im\n\nVariables:\n #self# <optimized out>\n i <optimized out>\n #temp#@_3::Int64\n N::Int64\n h::Float64\n y\u001b[1m\u001b[91m::Union{Complex{Float64}, Int64}\u001b[39m\u001b[22m\n #temp#@_7::Core.MethodInstance\n #temp#@_8::Complex{Float64}\n #temp#@_9::Core.MethodInstance\n #temp#@_10::Complex{Float64}\n\nBody:\n begin \n N::Int64 = $(Expr(:invoke, MethodInstance for power_by_squaring(::Int64, ::Int64), :(Base.power_by_squaring), 10, 8)) # line 5:\n h::Float64 = (Base.div_float)((Base.mul_float)((Base.sitofp)(Float64, 2)::Float64, 3.141592653589793)::Float64, (Base.sitofp)(Float64, N::Int64)::Float64)::Float64 # line 6:\n y\u001b[1m\u001b[91m::Union{Complex{Float64}, Int64}\u001b[39m\u001b[22m = 1 # line 7:\n SSAValue(2) = (Base.select_value)((Base.sle_int)(1, N::Int64)::Bool, N::Int64, (Base.sub_int)(1, 1)::Int64)::Int64\n #temp#@_3::Int64 = 1\n 9: \n unless (Base.not_int)((#temp#@_3::Int64 === (Base.add_int)(SSAValue(2), 1)::Int64)::Bool)::Bool goto 48\n SSAValue(3) = #temp#@_3::Int64\n SSAValue(4) = (Base.add_int)(#temp#@_3::Int64, 1)::Int64\n #temp#@_3::Int64 = SSAValue(4) # line 8:\n unless (y\u001b[1m\u001b[91m::Union{Complex{Float64}, Int64}\u001b[39m\u001b[22m isa Int64)::Bool goto 18\n #temp#@_7::Core.MethodInstance = MethodInstance for *(::Float64, ::Complex{Bool}, ::Int64)\n goto 27\n 18: \n unless (y\u001b[1m\u001b[91m::Union{Complex{Float64}, Int64}\u001b[39m\u001b[22m isa Complex{Float64})::Bool goto 22\n #temp#@_7::Core.MethodInstance = MethodInstance for *(::Float64, ::Complex{Bool}, ::Complex{Float64})\n goto 27\n 22: \n goto 24\n 24: \n #temp#@_8::Complex{Float64} = (h::Float64 * Main.im * y\u001b[1m\u001b[91m::Union{Complex{Float64}, Int64}\u001b[39m\u001b[22m)::Complex{Float64}\n goto 29\n 27: \n #temp#@_8::Complex{Float64} = $(Expr(:invoke, :(#temp#@_7), :(Main.*), :(h), :(Main.im), :(y)))\n 29: \n unless (y\u001b[1m\u001b[91m::Union{Complex{Float64}, Int64}\u001b[39m\u001b[22m isa Int64)::Bool goto 33\n #temp#@_9::Core.MethodInstance = MethodInstance for +(::Int64, ::Complex{Float64})\n goto 42\n 33: \n unless (y\u001b[1m\u001b[91m::Union{Complex{Float64}, Int64}\u001b[39m\u001b[22m isa Complex{Float64})::Bool goto 37\n #temp#@_9::Core.MethodInstance = MethodInstance for +(::Complex{Float64}, ::Complex{Float64})\n goto 42\n 37: \n goto 39\n 39: \n #temp#@_10::Complex{Float64} = (y\u001b[1m\u001b[91m::Union{Complex{Float64}, Int64}\u001b[39m\u001b[22m + #temp#@_8::Complex{Float64})::Complex{Float64}\n goto 44\n 42: \n #temp#@_10::Complex{Float64} = $(Expr(:invoke, :(#temp#@_9), :(Main.+), :(y), :(#temp#@_8)))\n 44: \n y\u001b[1m\u001b[91m::Union{Complex{Float64}, Int64}\u001b[39m\u001b[22m = #temp#@_10::Complex{Float64}\n 46: \n goto 9\n 48: # line 10:\n return y\u001b[1m\u001b[91m::Union{Complex{Float64}, Int64}\u001b[39m\u001b[22m\n end\u001b[1m\u001b[91m::Union{Complex{Float64}, Int64}\u001b[39m\u001b[22m\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# y = 1.0 でも同様の理由で遅い.\n\nfunction test_of_integration_slow2()\n N = 10^8\n h = 2π/N # ← 厳密には h = Complex{Float64}(2π/N) と書くべきだがそうする必要はない.\n y = 1.0 # ← y = 1.0 は y を浮動小数点数(実数)の 1 にするという意味. y = 1.0 + 0.0im と書くべき.\n for i in 1:N\n y += h*im*y # ← y は実変数だったはずなのに複素数を足している.\n end\n y\nend\n\ntest_of_integration_slow2()\n@show @time test_of_integration_slow2()\n\n# y が複素変数なのか実変数なのかわからない状態になってしまっている.\nprintln()\n@code_warntype test_of_integration_slow2()",
"execution_count": 6,
"outputs": [
{
"output_type": "stream",
"text": " 5.524305 seconds (600.00 M allocations: 16.391 GiB, 19.19% gc time)\n@time(test_of_integration_slow2()) = 1.0000001973920172 + 8.725669089740029e-15im\n\nVariables:\n #self# <optimized out>\n i <optimized out>\n #temp#@_3::Int64\n N::Int64\n h::Float64\n y\u001b[1m\u001b[91m::Union{Complex{Float64}, Float64}\u001b[39m\u001b[22m\n #temp#@_7::Core.MethodInstance\n #temp#@_8::Complex{Float64}\n #temp#@_9::Core.MethodInstance\n #temp#@_10::Complex{Float64}\n\nBody:\n begin \n N::Int64 = $(Expr(:invoke, MethodInstance for power_by_squaring(::Int64, ::Int64), :(Base.power_by_squaring), 10, 8)) # line 5:\n h::Float64 = (Base.div_float)((Base.mul_float)((Base.sitofp)(Float64, 2)::Float64, 3.141592653589793)::Float64, (Base.sitofp)(Float64, N::Int64)::Float64)::Float64 # line 6:\n y\u001b[1m\u001b[91m::Union{Complex{Float64}, Float64}\u001b[39m\u001b[22m = 1.0 # line 7:\n SSAValue(2) = (Base.select_value)((Base.sle_int)(1, N::Int64)::Bool, N::Int64, (Base.sub_int)(1, 1)::Int64)::Int64\n #temp#@_3::Int64 = 1\n 9: \n unless (Base.not_int)((#temp#@_3::Int64 === (Base.add_int)(SSAValue(2), 1)::Int64)::Bool)::Bool goto 48\n SSAValue(3) = #temp#@_3::Int64\n SSAValue(4) = (Base.add_int)(#temp#@_3::Int64, 1)::Int64\n #temp#@_3::Int64 = SSAValue(4) # line 8:\n unless (y\u001b[1m\u001b[91m::Union{Complex{Float64}, Float64}\u001b[39m\u001b[22m isa Float64)::Bool goto 18\n #temp#@_7::Core.MethodInstance = MethodInstance for *(::Float64, ::Complex{Bool}, ::Float64)\n goto 27\n 18: \n unless (y\u001b[1m\u001b[91m::Union{Complex{Float64}, Float64}\u001b[39m\u001b[22m isa Complex{Float64})::Bool goto 22\n #temp#@_7::Core.MethodInstance = MethodInstance for *(::Float64, ::Complex{Bool}, ::Complex{Float64})\n goto 27\n 22: \n goto 24\n 24: \n #temp#@_8::Complex{Float64} = (h::Float64 * Main.im * y\u001b[1m\u001b[91m::Union{Complex{Float64}, Float64}\u001b[39m\u001b[22m)::Complex{Float64}\n goto 29\n 27: \n #temp#@_8::Complex{Float64} = $(Expr(:invoke, :(#temp#@_7), :(Main.*), :(h), :(Main.im), :(y)))\n 29: \n unless (y\u001b[1m\u001b[91m::Union{Complex{Float64}, Float64}\u001b[39m\u001b[22m isa Float64)::Bool goto 33\n #temp#@_9::Core.MethodInstance = MethodInstance for +(::Float64, ::Complex{Float64})\n goto 42\n 33: \n unless (y\u001b[1m\u001b[91m::Union{Complex{Float64}, Float64}\u001b[39m\u001b[22m isa Complex{Float64})::Bool goto 37\n #temp#@_9::Core.MethodInstance = MethodInstance for +(::Complex{Float64}, ::Complex{Float64})\n goto 42\n 37: \n goto 39\n 39: \n #temp#@_10::Complex{Float64} = (y\u001b[1m\u001b[91m::Union{Complex{Float64}, Float64}\u001b[39m\u001b[22m + #temp#@_8::Complex{Float64})::Complex{Float64}\n goto 44\n 42: \n #temp#@_10::Complex{Float64} = $(Expr(:invoke, :(#temp#@_9), :(Main.+), :(y), :(#temp#@_8)))\n 44: \n y\u001b[1m\u001b[91m::Union{Complex{Float64}, Float64}\u001b[39m\u001b[22m = #temp#@_10::Complex{Float64}\n 46: \n goto 9\n 48: # line 10:\n return y\u001b[1m\u001b[91m::Union{Complex{Float64}, Float64}\u001b[39m\u001b[22m\n end\u001b[1m\u001b[91m::Union{Complex{Float64}, Float64}\u001b[39m\u001b[22m\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### 配列変数の初期化"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "次のセルとその次のセルを比較してみればわかるように, `y` を複素数の要素を持つ配列として確保しているならば, `y[1] = 1` と初期値を設定しても遅くならない."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "function test_of_integration_array0()\n N = 10^8\n h = 2π/N # ← 厳密には h = Complex{Float64}(2π/N) と書きたくなるがその必要はない\n y = Array{Complex{Float64}}(N+1)\n y[1] = 1.0 + 0.0im\n for i in 1:N\n y[i+1] = (1 + h*im)*y[i] # ← 厳密には 1 を one(Complex{Float64}) と書きたくなるがその必要はない\n end\n y[N+1]\nend\n\ntest_of_integration_array0()\n@show @time test_of_integration_array0()\n\n#println()\n#@code_warntype test_of_integration_array0()",
"execution_count": 7,
"outputs": [
{
"output_type": "stream",
"text": " 1.079095 seconds (7 allocations: 1.490 GiB, 18.81% gc time)\n@time(test_of_integration_array0()) = 1.0000001973920172 + 8.725669089740029e-15im\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 7,
"data": {
"text/plain": "1.0000001973920172 + 8.725669089740029e-15im"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "function test_of_integration_array1()\n N = 10^8\n h = 2π/N # ← 厳密には h = Complex{Float64}(2π)/N と書きたくなるがその必要はない\n y = Array{Complex{Float64}}(N+1)\n y[1] = 1.0 # ← 厳密には y[1] = 1.0 + 0.0im と書きたくなるがその必要はない.\n for i in 1:N\n y[i+1] = (1 + h*im)*y[i] # ← 厳密には 1 を one(Complex{Float64}) と書きたくなるがその必要はない\n end\n y[N+1]\nend\n\ntest_of_integration_array0()\n@show @time test_of_integration_array1()\n\n#println()\n#@code_warntype test_of_integration_array1()",
"execution_count": 8,
"outputs": [
{
"output_type": "stream",
"text": " 1.156505 seconds (3.71 k allocations: 1.490 GiB, 14.11% gc time)\n@time(test_of_integration_array1()) = 1.0000001973920172 + 8.725669089740029e-15im\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 8,
"data": {
"text/plain": "1.0000001973920172 + 8.725669089740029e-15im"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "function test_of_integration_array2()\n N = 10^8\n h = 2π/N # ← 厳密には h = Complex{Float64}(2π/N) と書きたくなるがその必要はない\n y = Array{Complex{Float64}}(N+1)\n y[1] = 1 # ← 厳密には y[1] = 1.0 + 0.0im と書きたくなるがその必要はない.\n for i in 1:N\n y[i+1] = (1 + h*im)*y[i] # ← 厳密には 1 を one(Complex{Float64}) と書きたくなるがその必要はない\n end\n y[N+1]\nend\n\ntest_of_integration_array0()\n@show @time test_of_integration_array2()\n\n#println()\n#@code_warntype test_of_integration_array2()",
"execution_count": 9,
"outputs": [
{
"output_type": "stream",
"text": " 1.031288 seconds (3.65 k allocations: 1.490 GiB, 11.05% gc time)\n@time(test_of_integration_array2()) = 1.0000001973920172 + 8.725669089740029e-15im\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 9,
"data": {
"text/plain": "1.0000001973920172 + 8.725669089740029e-15im"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### 型指定をしていないことが原因で遅くなることがある.\n\n例えば, 型指定をしていない配列 `a` を `a = []` と確保して, `a` に `push!` で要素を追加して行くコードを書くと遅くなる."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 非常に遅い.\n\nL = 10^6\n@show a = []\n@benchmark for i in 1:L\n push!(a, rand())\nend",
"execution_count": 10,
"outputs": [
{
"output_type": "stream",
"text": "a = [] = Any[]\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 10,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 76.28 MiB\n allocs estimate: 3998980\n --------------\n minimum time: 163.270 ms (0.00% GC)\n median time: 175.826 ms (0.00% GC)\n mean time: 430.309 ms (56.87% GC)\n maximum time: 1.245 s (84.88% GC)\n --------------\n samples: 12\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 函数の中に入れてもかなり遅い.\n\nfunction test_of_push_Any_array(; L = 10^6)\n a = []\n for i in 1:L\n push!(a, rand())\n end\nend\n\n@benchmark test_of_push_Any_array()",
"execution_count": 11,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 11,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 24.26 MiB\n allocs estimate: 1000021\n --------------\n minimum time: 84.505 ms (53.91% GC)\n median time: 87.415 ms (54.30% GC)\n mean time: 87.932 ms (54.41% GC)\n maximum time: 103.150 ms (61.75% GC)\n --------------\n samples: 57\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# a を Float64 型の要素を持つ配列に型指定するだけでかなり速くなる.\n\nfunction test_of_push_Float64_array(; L = 10^6)\n a = Float64[]\n for i in 1:L\n push!(a, rand()) # ← rand() の値は Float64 型\n end\n return a\nend\n\n@benchmark a = test_of_push_Float64_array()",
"execution_count": 12,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 12,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 9.00 MiB\n allocs estimate: 21\n --------------\n minimum time: 11.081 ms (0.00% GC)\n median time: 15.529 ms (0.00% GC)\n mean time: 14.981 ms (6.17% GC)\n maximum time: 24.366 ms (22.40% GC)\n --------------\n samples: 318\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# push! の繰り返しよりも, まとめて配列を確保して代入した方が速い.\n\nfunction test_of_Array_Float64(; L = 10^6)\n a = Array{Float64}(L)\n for i in 1:L\n a[i] = rand()\n end\n return a\nend\n\n@benchmark a = test_of_Array_Float64()",
"execution_count": 13,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 13,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 7.63 MiB\n allocs estimate: 3\n --------------\n minimum time: 4.585 ms (0.00% GC)\n median time: 4.923 ms (0.00% GC)\n mean time: 6.397 ms (21.79% GC)\n maximum time: 16.374 ms (72.18% GC)\n --------------\n samples: 781\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 組み込み函数は非常に速い.\n\n@benchmark a = rand(10^6)",
"execution_count": 14,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 14,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 7.63 MiB\n allocs estimate: 2\n --------------\n minimum time: 2.934 ms (0.00% GC)\n median time: 3.297 ms (0.00% GC)\n mean time: 4.453 ms (29.10% GC)\n maximum time: 13.562 ms (31.17% GC)\n --------------\n samples: 1122\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### Julia特有の変数の初期化の仕方\n\n`T` 型の引数 `x` の函数は値も `T` 型になって欲しいことが多いだろう. そして, そのとき, 計算で使われる変数も `T` 型であって欲しいことが多いだろう. そのような場合には, 函数内の変数を `y = 1.0` のように初期化すると, `y` は `Float64` 型であると決め打ちすることになり好ましくない. 函数の引数の型に合わせて適切に変数を確保(初期化)した方がよい.\n\n例えば以下のような方法が使われる:\n\n* `y = zero(T)` ← T型の0\n* `y = zero(x)` ← 値xと同じ型の0\n* `y = zeros(a)` ← 配列aと同じ型の0で埋め尽くされた配列\n* `y = one(T)` ← T型の1\n* `y = one(x)` ← 値xと同じ型の1\n* `y = ones(a)` ← 配列aと同じ型の1で埋め尽くされた配列\n* `y = similar(a)` ← 配列aと同じ型の変数を作成\n* `y = Array{eltype(a),2)(m,n)` ← 配列aの要素と同じ型を成分とするサイズ(m,n)の配列を作成\n* `y = rand(T,m,n)` ← T型の乱数で埋め尽くされたサイズ(m,n)の配列\n\n他にも多彩な方法がある. 新たに変数を作成する場合には何型の変数になるかに注意を払うことは, Julia言語におけるプログラミングの基本の1つである. 函数内だけで型が決まらない引数の型は以下のようにして取得する:\n\n* `type(x)` ← xの型\n* `eltype(a)` ← 配列aの要素の型"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### 例: `y = one(h)`\n\n次のセルの函数では変数 `y` が `y = one(h)` によって作成初期化されている. `y` の型は `h` の型と同じになる. `y = one(x)` としなかった理由は `x` が整数型の場合にも配慮したいからである. `x` が整数型のとき `h = x/N` は Float64 型になる."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "function myexp(x; N=10^6)\n h = x/N\n y = one(h) # h と同じ型の1で y を初期化. y は h と同じ型の変数になる.\n for i in 1:N\n y += h*y\n end\n y\nend",
"execution_count": 15,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 15,
"data": {
"text/plain": "myexp (generic function with 1 method)"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@show x = 1\n@show typeof(x)\n@time y = myexp(x)\ny, typeof(y)",
"execution_count": 16,
"outputs": [
{
"output_type": "stream",
"text": "x = 1 = 1\ntypeof(x) = Int64\n 0.020412 seconds (2.65 k allocations: 143.345 KiB)\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 16,
"data": {
"text/plain": "(2.7182804693194718, Float64)"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@show x = 1.0\n@show typeof(x)\n@time y = myexp(x)\ny, typeof(y)",
"execution_count": 17,
"outputs": [
{
"output_type": "stream",
"text": "x = 1.0 = 1.0\ntypeof(x) = Float64\n 0.014881 seconds (2.73 k allocations: 147.074 KiB)\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 17,
"data": {
"text/plain": "(2.7182804693194718, Float64)"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@show x = Int8(1)\n@show typeof(x)\n@time y = myexp(x)\ny, typeof(y)",
"execution_count": 18,
"outputs": [
{
"output_type": "stream",
"text": "x = Int8(1) = 1\ntypeof(x) = Int8\n 0.015704 seconds (3.24 k allocations: 180.809 KiB)\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 18,
"data": {
"text/plain": "(2.7182804693194718, Float64)"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@show x = log(BigFloat(2))\n@show typeof(x)\n@time y = myexp(x)\ny, typeof(y)",
"execution_count": 19,
"outputs": [
{
"output_type": "stream",
"text": "x = log(BigFloat(2)) = 6.931471805599453094172321214581765680755001343602552541206800094933936219696955e-01\ntypeof(x) = BigFloat\n 0.655712 seconds (4.01 M allocations: 168.128 MiB, 27.81% gc time)\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 19,
"data": {
"text/plain": "(1.999999519547265806834507659818847707783963397126589739047723711821894726917291, BigFloat)"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@show x = log(2)\n@show typeof(x)\n@time y = myexp(x)\ny, typeof(y)",
"execution_count": 20,
"outputs": [
{
"output_type": "stream",
"text": "x = log(2) = 0.6931471805599453\ntypeof(x) = Float64\n 0.002511 seconds (8 allocations: 224 bytes)\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 20,
"data": {
"text/plain": "(1.9999995195471085, Float64)"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@show x = log(Float32(2))\n@show typeof(x)\n@time y = myexp(x)\ny, typeof(y)",
"execution_count": 21,
"outputs": [
{
"output_type": "stream",
"text": "x = log(Float32(2)) = 0.6931472f0\ntypeof(x) = Float32\n 0.017045 seconds (4.62 k allocations: 264.389 KiB)\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 21,
"data": {
"text/plain": "(1.9964288f0, Float32)"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@show x = 2*BigFloat(π)*im\n@show typeof(x)\n@time y = myexp(x)\ny, typeof(y)",
"execution_count": 22,
"outputs": [
{
"output_type": "stream",
"text": "x = 2 * BigFloat(π) * im = 0.000000000000000000000000000000000000000000000000000000000000000000000000000000 + 6.283185307179586476925286766559005768394338798750211641949889184615632812572396im\ntypeof(x) = Complex{BigFloat}\n 1.587197 seconds (18.01 M allocations: 732.873 MiB, 32.39% gc time)\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 22,
"data": {
"text/plain": "(1.000019739403621252996352700802965665250765204184418369700029719552951878336357 - 8.268503659993478164569888347722451905981943288760811993512548549569722701649271e-11im, Complex{BigFloat})"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@show x = 2π*im\n@show typeof(x)\n@time y = myexp(x)\ny, typeof(y)",
"execution_count": 23,
"outputs": [
{
"output_type": "stream",
"text": "x = (2π) * im = 0.0 + 6.283185307179586im\ntypeof(x) = Complex{Float64}\n 0.015658 seconds (4.54 k allocations: 235.702 KiB)\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 23,
"data": {
"text/plain": "(1.0000197394036099 - 8.271237919989742e-11im, Complex{Float64})"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@show x = 2*Float32(π)*im\n@show typeof(x)\n@time y = myexp(x)\ny, typeof(y)",
"execution_count": 24,
"outputs": [
{
"output_type": "stream",
"text": "x = 2 * Float32(π) * im = 0.0f0 + 6.2831855f0im\ntypeof(x) = Complex{Float32}\n 0.016171 seconds (6.61 k allocations: 356.826 KiB)\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 24,
"data": {
"text/plain": "(1.0f0 + 2.8066303f-5im, Complex{Float32})"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "x = (π/6)*Float64[\n 0 -1\n 1 0\n]\n@show x\n@show typeof(x)\n@time y = myexp(x)\ny",
"execution_count": 25,
"outputs": [
{
"output_type": "stream",
"text": "x = [0.0 -0.523599; 0.523599 0.0]\ntypeof(x) = Array{Float64,2}\n 0.742904 seconds (2.34 M allocations: 229.454 MiB, 7.14% gc time)\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 25,
"data": {
"text/plain": "2×2 Array{Float64,2}:\n 0.866026 -0.5 \n 0.5 0.866026"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "#### 例: `y = Array{typeof(h)}(N+1)`"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "function myexp_orbit(x; N=10^3)\n h = x/N\n y = Array{typeof(h)}(N+1) # hと同じ型の要素を持つ配列を作成\n y[1] = one(h) # 行列対応にするためには one(h) を 1 で置き換えてはいけない.\n for i in 1:N\n y[i+1] = (one(h) + h)*y[i] # 行列対応にするためには one(h) を 1 で置き換えてはいけない.\n end\n y\nend",
"execution_count": 26,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 26,
"data": {
"text/plain": "myexp_orbit (generic function with 1 method)"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "N = 400\nx = 3\ny = myexp_orbit(x; N=N)\nxs = linspace(0,x,N+1)\n\nfigure(figsize=(5,3.5))\nplot(xs, y, label=\"y = myexp(x)\")\nplot(xs, exp.(xs), label=\"y = exp(x)\", ls=\"--\")\ngrid(ls=\":\")\nxlabel(\"x\")\nylabel(\"y\")\nlegend()\ntitle(\"exponential of real numbers\")",
"execution_count": 27,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "PyPlot.Figure(PyObject <Figure size 500x350 with 1 Axes>)",
"image/png": "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"
},
"metadata": {}
},
{
"output_type": "execute_result",
"execution_count": 27,
"data": {
"text/plain": "PyObject Text(0.5,1,'exponential of real numbers')"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 複素数でも使える\n\nN = 400\nz = π*im\nw = myexp_orbit(z; N=N)\n\nfigure(figsize=(5,3.5))\nplot(linspace(0,π,N+1), real(w), label=\"real part\")\nplot(linspace(0,π,N+1), imag(w), label=\"imaginary part\")\nxlabel(\"arg\")\ngrid(ls=\":\")\nlegend()\ntitle(\"exponential of pure imaginary numbers\")",
"execution_count": 28,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "PyPlot.Figure(PyObject <Figure size 500x350 with 1 Axes>)",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAc8AAAFhCAYAAAAWbiG1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzsnXlcVFX/x9+zAMMuqKAgomZuuWNuaS6luaZWZlbuWlZPtj5PZYvaY1n9WqyetHLJLDNbzFJRIXFLMNEwFXFHRQUVEQRkYO7M+f1xY5oJEAYYZi7e9+s1L849nHvu+dzvmfne+73nnqMRQghUVFRUVFRUKozW1Q1QUVFRUVFRGqrzVFFRUVFRcRDVeaqoqKioqDiI6jxVVFRUVFQcRHWeKioqKioqDqI6TxUVFRUVFQdRnaeKioqKioqDqM5TRUVFRUXFQVTnqaKioqKi4iCq81RxGw4dOsTs2bM5depUif9NnDiRJk2aVKrequxbFh9//DHNmzfH09MTjUZDdnZ2tdbvKpo0acLEiRNd3YzrcurUKTQaDcuWLXN1U2oNs2fPRqPRkJmZ6eqmKAa9qxugolLMoUOHmDNnDn379i3h7F599VWeeuop1zTsH+zbt48ZM2YwdepUJkyYgF6vx9/f39XNqhZ++uknAgICXN2M69KwYUMSEhK46aabXN0UlRsY1XmqKAJ3+qFMTk4GYNq0aXTt2tXFrZEpKCjAYDCg0WiqVE+nTp2qqUXOw8vLi+7du7vk2NeuXcPHx8clx64N1Kbzp4Zta5hjx47x4IMPEhISgpeXF61bt+aTTz6xKzN9+nQMBgN79+615lksFu644w5CQ0NJT08HYNmyZWg0GmJjY5k0aRLBwcH4+voyfPhwTp48WeLYS5cupUOHDhgMBoKDgxk1ahQpKSl2ZSZOnIifnx/Hjx9nyJAh+Pn5ERERwXPPPUdhYaFd2aKiIubOnUurVq3w8vKifv36TJo0iUuXLtmVa9KkCcOGDWPjxo107twZb29vWrVqxdKlS61lli1bxujRowHo168fGo3GLjRXWuj1k08+4fbbbyckJARfX1/atWvHO++8g8lkqoAlSqe8c9S3b18efvhhALp164ZGo7lumLM4HJaUlMQ999xDQEAAgYGBPPzwwyXOk0ajYfbs2SXq+GcotdjuMTExTJ48mfr16+Pj42O1T0X6WFn881hbt25Fo9HwzTff8MILL9CwYUP8/PwYPnw4Fy5cIDc3l0ceeYR69epRr149Jk2aRF5enl2dFbWTEII333yTyMhIDAYDXbp0ITY2lr59+9K3b19rudLCtsXnOTk5mbFjxxIYGEhoaCiTJ08mJyenUu3p27cvbdu2Zfv27fTs2RMfHx8mT57MlClTCA4O5tq1ayXOX//+/bnllluue46L601MTKR37974+PjQrFkz3nrrLSwWi7VcsZ3/+Rij2CZbt24tUWdCQgI9e/bE29ubJk2a8MUXXwCwfv16OnfujI+PD+3atWPjxo2lti0tLa3cfgqwatUqevToga+vL35+ftx1110kJSXZlSn+LTlw4AADBw7E39+fO+64A4CkpCSGDRtm7aNhYWEMHTqUs2fPXvfcuRVCpcZITk4WgYGBol27dmL58uUiJiZGPPfcc0Kr1YrZs2dbyxUUFIiOHTuKZs2aiStXrgghhHjttdeEVqsVMTEx1nJffPGFAERERISYPHmy2LBhg/j8889FSEiIiIiIsO4rhBBvvvmmAMTYsWPF+vXrxfLly0WzZs1EYGCgOHr0qLXchAkThKenp2jdurV49913xa+//ipee+01odFoxJw5c6zlzGazGDRokPD19RVz5swRsbGxYvHixSI8PFy0adNGXLt2zVo2MjJSNGrUSLRp00YsX75cbNq0SYwePVoAYtu2bUIIIS5evGht4yeffCISEhJEQkKCuHjxorVdkZGRdufzmWeeEQsXLhQbN24UcXFx4oMPPhD16tUTkyZNsitX2r6lUZFzlJycLF555RUBiC+++EIkJCSI48ePl1nnrFmzBCAiIyPFv//9b7Fp0ybx/vvvC19fX9GpUydRVFRkLQuIWbNmlagjMjJSTJgwwbpdbPfw8HDxyCOPiA0bNogffvhBSJJU4T5WFv881pYtW6ztnzhxoti4caP49NNPhZ+fn+jXr58YMGCAeP7550VMTIx4++23hU6nE08++aRdnRW100svvSQA8cgjj4iNGzeKRYsWicaNG4uGDRuKPn36WMulpqZaz/8/z3PLli3Fa6+9JmJjY8X7778vvLy8Shynou3p06ePCA4OFhEREeLjjz8WW7ZsEdu2bRN//vmnAMSiRYvsyicnJ1v77/Xo06ePqFu3rrj55pvFp59+KmJjY8Xjjz8uAPHll19ayxXbOTU11W7/Ypts2bKlRJ0tW7YUS5YsEZs2bRLDhg0TgJgzZ45o166dWLlypYiOjhbdu3cXXl5e4ty5cyXOX0X66RtvvCE0Go2YPHmyWLdunVi9erXo0aOH8PX1FcnJydZyEyZMEB4eHqJJkyZi3rx5YvPmzWLTpk0iLy9P1K1bV3Tp0kV89913Ytu2bWLVqlVi+vTp4tChQ9c9d+6E6jxrkLvuuks0atRI5OTk2OX/61//EgaDQWRlZVnzjh07JgICAsTIkSPFr7/+KrRarXjllVfs9iv+co0aNcouf+fOnQIQc+fOFUIIceXKFeHt7S2GDBliV+7MmTPCy8tLPPjgg9a8CRMmCEB89913dmWHDBkiWrZsad1euXKlAMSPP/5oVy4xMVEAYsGCBda8yMhIYTAYxOnTp615BQUFIjg4WDz66KPWvO+//77Ej4Jtu67nAM1mszCZTGL58uVCp9PZncuKOE9HzlHxeU9MTLxunUL8/aP0zDPP2OWvWLFCAOLrr7+25jnqPMePH1+irCN9rDTKcp7Dhw+3K/f0008LQMyYMcMuf+TIkSI4OLjM+suyU1ZWlvDy8hJjxoyxK5+QkCCACjvPd955x27/xx9/XBgMBmGxWBxqjxCyQwLE5s2bS+zXp08f0bFjR7u8xx57TAQEBIjc3Nwy9dvW+/vvv9vlt2nTRtx1113WbUedJyD27Nljzbt8+bLQ6XTC29vbzlHu27dPAOKjjz6y5lW0n545c0bo9foSF0i5ubmiQYMG4v7777fmFf+WLF261K7snj17BCDWrFlzvdPk9qhh2xrCaDSyefNmRo0ahY+PD5IkWT9DhgzBaDSya9cua/nmzZuzaNEi1qxZw7Bhw+jdu3epIT2Ahx56yG67Z8+eREZGsmXLFgASEhIoKCgoEV6MiIigf//+bN682S5fo9EwfPhwu7z27dtz+vRp6/a6deuoU6cOw4cPt9PSsWNHGjRoYBdSAujYsSONGze2bhsMBlq0aGFXp6MkJSVx9913U7duXXQ6HR4eHowfPx6z2czRo0cdqsvRc+Qo/7TR/fffj16vt9qoMtx777122472MUcYNmyY3Xbr1q0BGDp0aIn8rKwsu9BtRey0a9cuCgsLuf/+++3q6969u0Mjpe+++2677fbt22M0Grl48aJD7SkmKCiI/v37lzjOU089xb59+9i5cycAV69e5auvvmLChAn4+fmV284GDRqUeF7+z++YozRs2JCoqCjrdnBwMCEhIXTs2JGwsDBrfrHtSjtWef1006ZNSJLE+PHj7fqXwWCgT58+Jb73ULKfNm/enKCgIF544QU+/fRTDh06VGnNrkR1njXE5cuXkSSJjz/+GA8PD7vPkCFDAEoMEx86dCihoaEYjUaeffZZdDpdqXU3aNCg1LzLly9bjw3yl+ufhIWFWf9fjI+PDwaDwS7Py8sLo9Fo3b5w4QLZ2dl4enqW0JORkVFCS926dUsc28vLi4KCglI1lceZM2fo3bs3586d48MPP2THjh0kJiZan+05Wq+j58hR/mkjvV5P3bp1q1TvP9tamT5WUYKDg+22PT09r5tf3Fcqaqfi8xAaGlri2KXllcU/+5mXl5fdcRztN6X1B4ARI0bQpEkT637Lli0jPz+fJ554olLtLG5rZb8PUNIWINujPBvZUl4/vXDhAgC33npriT62atWqEv3Lx8enxOjtwMBAtm3bRseOHZk5cya33HILYWFhzJo1q0rjFWoadbRtDREUFIROp2PcuHFlfsGaNm1qtz19+nRyc3O55ZZbmDFjBr179yYoKKjEfhkZGaXmNW/eHPj7i1o80MiW8+fPU69ePYf11KtXj7p165Y58MDZr26sWbOG/Px8Vq9eTWRkpDV/3759larPGefIloyMDMLDw63bkiRx+fJlux9RLy+vEoOygDId7D9H1lamjzmbitqp+DwU/zjbkpGRUW3v6Trab8oavazVanniiSeYOXMm7733HgsWLOCOO+6gZcuW1dJOwHoB+88+4cx3Mcvrp8Xfgx9++MHu/JVFWeevXbt2fPvttwgh2L9/P8uWLeP111/H29ubF198sRqUOB/VedYQPj4+9OvXj6SkJNq3b2+9+iuLxYsX8/XXX7N06VL69OlD586dmTRpEmvWrClRdsWKFXahkfj4eE6fPs3UqVMB6NGjB97e3nz99dfWEa0AZ8+eJS4ujvvuu89hPcOGDePbb7/FbDbTrVs3h/cvjX/eJVyP4i9l8T4gj9ZctGhRpY7tjHNky4oVK+xCat999x2SJNmNIm3SpAn79++32y8uLq7E6NWycLSP1QQVtVO3bt3w8vJi1apV3HPPPdb8Xbt2cfr06WpzntXZb6ZOncrs2bN56KGHOHLkCG+//Xa1tLGYYs379++3c8q//PJLtR7HlvL66V133YVer+fEiRMlwrGVQaPR0KFDBz744AOWLVvGH3/8UeU6awrVedYgH374Ib169aJ379489thjNGnShNzcXI4fP87atWuJi4sD4MCBA8yYMYMJEyYwadIkAJYsWcJ9993H/Pnzefrpp+3q3bNnD1OnTmX06NGkpaXx8ssvEx4ezuOPPw5AnTp1ePXVV5k5cybjx49n7NixXL58mTlz5mAwGJg1a5bDWh544AFWrFjBkCFDeOqpp+jatSseHh6cPXuWLVu2MGLECEaNGuVQnW3btgXg888/x9/fH4PBQNOmTUsNcQ0YMABPT0/Gjh3Lf/7zH4xGIwsXLuTKlSsOawHnnCNbVq9ejV6vZ8CAASQnJ/Pqq6/SoUMHu2d848aN49VXX+W1116jT58+HDp0iP/9738EBgZW+DgV7WM1RUXtFBwczLPPPsu8efMICgpi1KhRnD17ljlz5tCwYUO02up5wlSd/aZOnTqMHz+ehQsXEhkZWWKcQFW59dZbadmyJc8//zySJBEUFMRPP/3Eb7/9Vq3HsaW8ftqkSRNef/11Xn75ZU6ePMmgQYMICgriwoUL7N69G19fX+bMmXPdY6xbt44FCxYwcuRImjVrhhCC1atXk52dzYABA5ymrdpx6XClG5DU1FQxefJkER4eLjw8PET9+vVFz549rSNj8/LyRKtWrUSbNm1Efn6+3b5PPPGE8PDwsI7SKx6NFxMTI8aNGyfq1KljHTF67NixEsdevHixaN++vfD09BSBgYFixIgRdkPLhZBHyPn6+pbYt3g0ni0mk0m8++67okOHDsJgMAg/Pz/RqlUr8eijj9odPzIyUgwdOrREnX369LEbRSmEEPPnzxdNmzYVOp3ObkRlaSNm165daz12eHi4+Pe//y02bNhQYiRiRV9VEaJi56gyo2337t0rhg8fLvz8/IS/v78YO3asuHDhgl3ZwsJC8Z///EdEREQIb29v0adPH7Fv374yR9uWdfzy+tj1KGu07ffff1+hc1Cs99KlS9a8itrJYrGIuXPnikaNGglPT0/Rvn17sW7dOtGhQwe7EeXXG21re1zbdtqOWK1oe/r06SNuueWW656vrVu3CkC89dZb1y1nS1n1ltZPjx49KgYOHCgCAgJE/fr1xZNPPinWr19f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"
},
"metadata": {}
},
{
"output_type": "execute_result",
"execution_count": 28,
"data": {
"text/plain": "PyObject Text(0.5,1,'exponential of pure imaginary numbers')"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 行列でも使える\n\nN = 10^4\nZ = (5π/3)*Float64[\n 0 -1\n 1 0\n]\nW = myexp_orbit(Z; N=N)\nx = [W[k][1,1] for k in 1:N+1]\ny = [W[k][2,1] for k in 1:N+1]\nplot(x, y)\nplot([0.0, x[1]], [0.0, y[1]], color=\"k\", lw=1)\nplot([0.0, x[N+1]], [0.0, y[N+1]], color=\"k\", lw=1)\ngrid()\naxes()[:set_aspect](\"equal\")",
"execution_count": 29,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "PyPlot.Figure(PyObject <Figure size 640x480 with 1 Axes>)",
"image/png": "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"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## 大域変数を含む函数は遅くなる\n\n**解決法1: 函数内の大域変数に型宣言を付ける.**\n\n**解決法2: 全体を函数の中に入れてしまう.**\n\n**解決法3: 大域変数を定数に置き換える.**\n\n**解決法4: function-like object を使う.** ← 少し面倒だけどおすすめ!\n\n* https://docs.julialang.org/en/stable/manual/methods/#Function-like-objects-1\n\nより正確に言えば, 大域変数を含むから遅くなるのではなく, Julia言語の型推定の仕組み(函数の引数の型から変数の型を推定するという仕組み)によって十分に型推定できなくなることが原因で遅くなる."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# テストデータの作成\n\nN = 10^8\nsrand(2018)\nw = randn(N)\nx = w.^2;",
"execution_count": 30,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "以下は実質的に標準正規分布の3次のモーメントをモンテカルロ積分で計算していることになる. 計算結果は 0 に近くならなければいけない."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 函数の直接呼出しは速い\n\nweighted_mean(x,w) = mean(w[i]*x[i] for i in eachindex(w)) # w を後でパラメーターだとみなす.\n\nweighted_mean(x,w)\n@show @time weighted_mean(x,w)\n\n# println()\n# @code_warntype weighted_mean(x,w)",
"execution_count": 31,
"outputs": [
{
"output_type": "stream",
"text": " 0.131264 seconds (7 allocations: 240 bytes)\n@time(weighted_mean(x, w)) = 0.0002198997715224615\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 31,
"data": {
"text/plain": "0.0002198997715224615"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### 大域変数を含む函数は非常に遅くなることがある."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 以下の場合には大域変数を含んでいるように見えても**速い**.\n# \n# function_containing_global_var1(x) を実行しようとすると, \n# Julia言語は weighted_mean(x,w) を実行しようとする.\n# そして, weighted_mean 函数を引数 x, w の型に合わせてコンパイルして実行する.\n# Julia言語が引数の型に合わせて十分に型推定できる場合には計算が速くなる.\n\nfunction_containing_global_var1(x) = weighted_mean(x,w)\n\nfunction_containing_global_var1(x)\n@show @time function_containing_global_var1(x)\n\nprintln()\n\n# 計算速度的には問題無かったが, @code_warntype で確認すると赤字の警告が出ているので避けた方が無難.\n@code_warntype function_containing_global_var1(x)",
"execution_count": 32,
"outputs": [
{
"output_type": "stream",
"text": " 0.134927 seconds (8 allocations: 256 bytes)\n@time(function_containing_global_var1(x)) = 0.0002198997715224615\n\nVariables:\n #self# <optimized out>\n x::Array{Float64,1}\n #17\u001b[1m\u001b[91m::##17#18{Array{Float64,1},_} where _\u001b[39m\u001b[22m\n\nBody:\n begin \n SSAValue(0) = Main.w\n $(Expr(:inbounds, false))\n # meta: location In[31] weighted_mean 3\n #17\u001b[1m\u001b[91m::##17#18{Array{Float64,1},_} where _\u001b[39m\u001b[22m = $(Expr(:new, :((Core.apply_type)(Main.##17#18, Array{Float64,1}, (Core.typeof)(SSAValue(0))::DataType)::Type{##17#18{Array{Float64,1},_}} where _), :(x), SSAValue(0)))\n SSAValue(2) = (Main.eachindex)(SSAValue(0))\u001b[1m\u001b[91m::Any\u001b[39m\u001b[22m\n SSAValue(3) = (Base.Generator)(#17\u001b[1m\u001b[91m::##17#18{Array{Float64,1},_} where _\u001b[39m\u001b[22m, SSAValue(2))\u001b[1m\u001b[91m::Base.Generator{_,_} where _ where _\u001b[39m\u001b[22m\n # meta: pop location\n $(Expr(:inbounds, :pop))\n return (Base.mean)(Base.identity, SSAValue(3))\u001b[1m\u001b[91m::Any\u001b[39m\u001b[22m\n end\u001b[1m\u001b[91m::Any\u001b[39m\u001b[22m\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 以下のように書くと大幅に遅くなる.\n# \n# function_containing_global_var1(x) を実行しようとすると, \n# Julia言語は mean(w[i]*x[i] for i in eachindex(w)) を実行しようとする.\n# そして, mean(w[i]*x[i] for i in eachindex(w)) を引数 x の型に合わせてコンパイルして実行する.\n# そのとき w は大域変数なので型は不明であるとする.\n# Julia言語が引数の型に合わせて十分に型推定できない場合には計算は遅くなる.\n\nfunction_containing_global_var2(x) = mean(w[i]*x[i] for i in eachindex(w))\n\nfunction_containing_global_var2(x)\n@show @time function_containing_global_var2(x)\n\nprintln()\n\n# w の型が Any になっている\n@code_warntype function_containing_global_var2(x)",
"execution_count": 33,
"outputs": [
{
"output_type": "stream",
"text": " 26.626373 seconds (500.00 M allocations: 7.451 GiB, 48.73% gc time)\n@time(function_containing_global_var2(x)) = 0.0002198997715224615\n\nVariables:\n #self# <optimized out>\n x::Array{Float64,1}\n #19::##19#20{Array{Float64,1}}\n\nBody:\n begin \n #19::##19#20{Array{Float64,1}} = $(Expr(:new, ##19#20{Array{Float64,1}}, :(x)))\n SSAValue(1) = (Main.eachindex)(Main.w)\u001b[1m\u001b[91m::Any\u001b[39m\u001b[22m\n SSAValue(2) = (Base.Generator)(#19::##19#20{Array{Float64,1}}, SSAValue(1))\u001b[1m\u001b[91m::Base.Generator{_,##19#20{Array{Float64,1}}} where _\u001b[39m\u001b[22m\n return (Base.mean)(Base.identity, SSAValue(2))\u001b[1m\u001b[91m::Any\u001b[39m\u001b[22m\n end\u001b[1m\u001b[91m::Any\u001b[39m\u001b[22m\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### 大域変数を含む函数は大域変数に型宣言を付けると速くなる."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 以下のように大域変数を含んでいる場合であっても, 型宣言を追加すれば速くなる.\n\nfunction_containing_global_var3(x) = (mean((w::Array{Float64,1})[i]*x[i] for i in eachindex(w::Array{Float64,1})))\n\nfunction_containing_global_var3(x)\n@show @time function_containing_global_var3(x)\n\nprintln()\n\n# 赤字の警告がすべて消えている.\n@code_warntype function_containing_global_var3(x)",
"execution_count": 34,
"outputs": [
{
"output_type": "stream",
"text": " 0.185670 seconds (7 allocations: 224 bytes)\n@time(function_containing_global_var3(x)) = 0.0002198997715224615\n\nVariables:\n #self# <optimized out>\n x::Array{Float64,1}\n #21::##21#22{Array{Float64,1}}\n\nBody:\n begin \n #21::##21#22{Array{Float64,1}} = $(Expr(:new, ##21#22{Array{Float64,1}}, :(x)))\n SSAValue(3) = (Core.typeassert)(Main.w, Array{Float64,1})::Array{Float64,1}\n $(Expr(:inbounds, false))\n # meta: location abstractarray.jl eachindex 764\n # meta: location abstractarray.jl indices1 71\n # meta: location abstractarray.jl indices 64\n SSAValue(6) = (Base.arraysize)(SSAValue(3), 1)::Int64\n # meta: pop location\n # meta: pop location\n # meta: pop location\n $(Expr(:inbounds, :pop))\n SSAValue(8) = (Base.select_value)((Base.slt_int)(SSAValue(6), 0)::Bool, 0, SSAValue(6))::Int64\n $(Expr(:inbounds, false))\n # meta: location generator.jl Type 32\n # meta: location generator.jl Type 32\n # meta: location range.jl convert 764\n SSAValue(7) = SSAValue(8)\n # meta: pop location\n # meta: pop location\n # meta: pop location\n $(Expr(:inbounds, :pop))\n SSAValue(2) = $(Expr(:new, Base.Generator{Base.OneTo{Int64},##21#22{Array{Float64,1}}}, :(#21), :($(Expr(:new, Base.OneTo{Int64}, :((Base.select_value)((Base.slt_int)(SSAValue(7), 0)::Bool, 0, SSAValue(7))::Int64))))))\n return $(Expr(:invoke, MethodInstance for mean(::Base.#identity, ::Base.Generator{Base.OneTo{Int64},##21#22{Array{Float64,1}}}), :(Base.mean), :(Base.identity), SSAValue(2)))\n end::Float64\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### 全体を函数の中に入れると速くなる."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 大域変数だった w の定義も含めて, 全体を函数の中に入れると速くなる.\n#\n# この解決法が最もシンプルでわかりやすいが, 柔軟性に欠けた不便な解決法でもある.\n\nfunction test_of_function_containing_local_var()\n N = 10^8\n srand(2018)\n w = randn(N)\n x = w.^2\n \n function_containing_local_var(x) = mean(w[i]*x[i] for i in eachindex(w))\n\n function_containing_local_var(x)\n @show @time function_containing_local_var(x)\nend\n\ntest_of_function_containing_local_var()\n\n# println()\n# @code_warntype test_of_function_containing_local_var()",
"execution_count": 35,
"outputs": [
{
"output_type": "stream",
"text": " 0.137253 seconds (2 allocations: 64 bytes)\n@time(function_containing_local_var(x)) = 0.0002198997715224615\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 35,
"data": {
"text/plain": "0.0002198997715224615"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### closureを使っても速くなる.\n\nclosure を使うよりも, 後述の function-like object を使う方がよいと思う. "
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# closureを使っても速くなる.\n\nfunction make_function_closure(w)\n function_closure(x) = mean(w[i]*x[i] for i in eachindex(w))\n return function_closure\nend\n\nN = 10^8\nsrand(2018)\nw = randn(N)\nx = w.^2\n\nfunction_closure = make_function_closure(w)\nfunction_closure(x)\n@show @time function_closure(x)\n\n# println()\n# @code_warntype function_closure(x)",
"execution_count": 36,
"outputs": [
{
"output_type": "stream",
"text": " 0.139753 seconds (7 allocations: 240 bytes)\n@time(function_closure(x)) = 0.0002198997715224615\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 36,
"data": {
"text/plain": "0.0002198997715224615"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### 大域変数を定数に変えても速くなる."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 大域変数 w を定数にすると速くなる.\n#\n# この方法も単純だが, 柔軟性に欠けた不便な解決法でもある.\n\nN = 10^8\nsrand(2018)\nconst w_const = randn(N)\n\nfunction_containing_const(x) = mean(w_const[i]*x[i] for i in eachindex(w_const))\n\nfunction_containing_const(x)\n@show @time function_containing_const(x)\n\n# println()\n# @code_warntype function_containing_const()",
"execution_count": 37,
"outputs": [
{
"output_type": "stream",
"text": " 0.171542 seconds (7 allocations: 224 bytes)\n@time(function_containing_const(x)) = 0.0002198997715224615\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 37,
"data": {
"text/plain": "0.0002198997715224615"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### パラメーターの型が確定している function-like object は速い."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# パラメーター w の型が確定している function-like object は速い\n\nmutable struct WeightedMean{T} w::T end\n(f::WeightedMean)(x) = mean(f.w[i]*x[i] for i in eachindex(f.w))\n\nfunction_like_object = WeightedMean(w)\nfunction_like_object(x)\n@show @time function_like_object(x)\n\nprintln()\n\n# パラメーター w の型 T が確定している.\n@show typeof(function_like_object)\n\n# println()\n# @code_warntype function_like_object(x)",
"execution_count": 38,
"outputs": [
{
"output_type": "stream",
"text": " 0.196472 seconds (7 allocations: 240 bytes)\n@time(function_like_object(x)) = 0.0002198997715224615\n\ntypeof(function_like_object) = WeightedMean{Array{Float64,1}}\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 38,
"data": {
"text/plain": "WeightedMean{Array{Float64,1}}"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 上と全く同じ内容を改行を増やして書くと以下のようになる.\n\nmutable struct WeightedMean{T}\n w::T\nend\n\nfunction (f::WeightedMean)(x)\n mean(f.w[i]*x[i] for i in eachindex(f.w))\nend\n \nfunction_like_object = WeightedMean(w)\nfunction_like_object(x)\n@show @time function_like_object(x)\n\nprintln()\n\n# パラメーター w の型 T が Array{Float64,1} に確定している.\n@show typeof(function_like_object)\n\n# println()\n# @code_warntype function_like_object(x)",
"execution_count": 39,
"outputs": [
{
"output_type": "stream",
"text": " 0.133389 seconds (7 allocations: 240 bytes)\n@time(function_like_object(x)) = 0.0002198997715224615\n\ntypeof(function_like_object) = WeightedMean{Array{Float64,1}}\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 39,
"data": {
"text/plain": "WeightedMean{Array{Float64,1}}"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 次のような書き方もできる. \n# パラメーター w の意味的にはこちらの方が好ましいと思われる.\n\nmutable struct WeightedMeanArrayOnly{T}\n w::Array{T}\nend\n\nfunction (f::WeightedMeanArrayOnly)(x)\n mean(f.w[i]*x[i] for i in eachindex(f.w))\nend\n \nfunction_like_object_array_only = WeightedMeanArrayOnly(w)\nfunction_like_object_array_only(x)\n@show @time function_like_object_array_only(x)\n\nprintln()\n\n# 型 T が Float64 に確定している.\n@show typeof(function_like_object_array_only)\n\n# println()\n# @code_warntype function_like_object_array_only(x)",
"execution_count": 40,
"outputs": [
{
"output_type": "stream",
"text": " 0.222843 seconds (8 allocations: 256 bytes)\n@time(function_like_object_array_only(x)) = 0.0002198997715224615\n\ntypeof(function_like_object_array_only) = WeightedMeanArrayOnly{Float64}\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 40,
"data": {
"text/plain": "WeightedMeanArrayOnly{Float64}"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# パラメーターの w の型が不明の function-like object は遅い\n\nmutable struct WeightedMeanSlow w end\n(f::WeightedMeanSlow)(x) = mean(f.w[i]*x[i] for i in eachindex(f.w))\n\nfunction_like_object_slow = WeightedMeanSlow(w)\nfunction_like_object_slow(x)\n@show @time function_like_object_slow(x)\n\nprintln()\n@show typeof(function_like_object_slow)\n\nprintln()\n\n# w の型が Any になってしまっている\n@code_warntype function_like_object_slow(x)",
"execution_count": 41,
"outputs": [
{
"output_type": "stream",
"text": " 31.616829 seconds (500.00 M allocations: 7.451 GiB, 47.87% gc time)\n@time(function_like_object_slow(x)) = 0.0002198997715224615\n\ntypeof(function_like_object_slow) = WeightedMeanSlow\n\nVariables:\n f::WeightedMeanSlow\n x::Array{Float64,1}\n #41::##41#42{WeightedMeanSlow,Array{Float64,1}}\n\nBody:\n begin \n #41::##41#42{WeightedMeanSlow,Array{Float64,1}} = $(Expr(:new, ##41#42{WeightedMeanSlow,Array{Float64,1}}, :(f), :(x)))\n SSAValue(1) = (Main.eachindex)((Core.getfield)(f::WeightedMeanSlow, :w)\u001b[1m\u001b[91m::Any\u001b[39m\u001b[22m)\u001b[1m\u001b[91m::Any\u001b[39m\u001b[22m\n SSAValue(2) = (Base.Generator)(#41::##41#42{WeightedMeanSlow,Array{Float64,1}}, SSAValue(1))\u001b[1m\u001b[91m::Base.Generator{_,##41#42{WeightedMeanSlow,Array{Float64,1}}} where _\u001b[39m\u001b[22m\n return (Base.mean)(Base.identity, SSAValue(2))\u001b[1m\u001b[91m::Any\u001b[39m\u001b[22m\n end\u001b[1m\u001b[91m::Any\u001b[39m\u001b[22m\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# function-like object の函数の定義で f.w を誤って w と書いてしまうと大幅に遅くなる.\n# w が大域変数として定義されているとエラーが出ないので要注意!\n\nmutable struct WeightedMeanTypo{T} w::T end\n(f::WeightedMeanTypo)(x) = mean(w[i]*x[i] for i in eachindex(f.w))\n\nfunction_like_object_typo = WeightedMeanTypo(w)\nfunction_like_object_typo(x)\n@show @time function_like_object_typo(x)\n\nprintln()\n\n@code_warntype function_like_object_typo(x)",
"execution_count": 42,
"outputs": [
{
"output_type": "stream",
"text": " 30.619649 seconds (500.00 M allocations: 7.451 GiB, 47.18% gc time)\n@time(function_like_object_typo(x)) = 0.0002198997715224615\n\nVariables:\n f::WeightedMeanTypo{Array{Float64,1}}\n x::Array{Float64,1}\n #43::##43#44{Array{Float64,1}}\n\nBody:\n begin \n #43::##43#44{Array{Float64,1}} = $(Expr(:new, ##43#44{Array{Float64,1}}, :(x)))\n SSAValue(3) = (Core.getfield)(f::WeightedMeanTypo{Array{Float64,1}}, :w)::Array{Float64,1}\n $(Expr(:inbounds, false))\n # meta: location abstractarray.jl eachindex 764\n # meta: location abstractarray.jl indices1 71\n # meta: location abstractarray.jl indices 64\n SSAValue(6) = (Base.arraysize)(SSAValue(3), 1)::Int64\n # meta: pop location\n # meta: pop location\n # meta: pop location\n $(Expr(:inbounds, :pop))\n SSAValue(8) = (Base.select_value)((Base.slt_int)(SSAValue(6), 0)::Bool, 0, SSAValue(6))::Int64\n $(Expr(:inbounds, false))\n # meta: location generator.jl Type 32\n # meta: location generator.jl Type 32\n # meta: location range.jl convert 764\n SSAValue(7) = SSAValue(8)\n # meta: pop location\n # meta: pop location\n # meta: pop location\n $(Expr(:inbounds, :pop))\n SSAValue(2) = $(Expr(:new, Base.Generator{Base.OneTo{Int64},##43#44{Array{Float64,1}}}, :(#43), :($(Expr(:new, Base.OneTo{Int64}, :((Base.select_value)((Base.slt_int)(SSAValue(7), 0)::Bool, 0, SSAValue(7))::Int64))))))\n return $(Expr(:invoke, MethodInstance for mean(::Base.#identity, ::Base.Generator{Base.OneTo{Int64},##43#44{Array{Float64,1}}}), :(Base.mean), :(Base.identity), SSAValue(2)))\n end\u001b[1m\u001b[91m::Any\u001b[39m\u001b[22m\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### function-like object (=パラメーター付き函数)の作り方\n\nFunction-like object はパラメーター付き函数の作り方だと思ってよい. "
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "mutable struct AffineTransformation{T}\n A::Array{T,2}\n b::Array{T,1}\nend\n\nfunction (f::AffineTransformation)(x)\n f.A * x + f.b\nend",
"execution_count": 43,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "のような感じで作成し,"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "θ = π/3\nA = [\n cos(θ) -sin(θ)\n sin(θ) cos(θ)\n]\nb = [\n 5.0\n -2.0\n]\nv = [\n 1.0\n 0.0\n]\nΦ = AffineTransformation(A, b)\n\n@show Φ\n@show Φ(v)\n@show Φ.A = eye(2)\n@show Φ.b = zeros(2)\n@show Φ\n@show Φ(v);",
"execution_count": 44,
"outputs": [
{
"output_type": "stream",
"text": "Φ = AffineTransformation{Float64}([0.5 -0.866025; 0.866025 0.5], [5.0, -2.0])\nΦ(v) = [5.5, -1.13397]\nΦ.A = eye(2) = [1.0 0.0; 0.0 1.0]\nΦ.b = zeros(2) = [0.0, 0.0]\nΦ = AffineTransformation{Float64}([1.0 0.0; 0.0 1.0], [0.0, 0.0])\nΦ(v) = [1.0, 0.0]\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "のような感じで利用する."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## 配列を使うときには無用にメモリを消費するように書くと遅くなる.\n\n現時点でのJulia言語では, 無用にメモリを消費する(無用に配列を確保してしまう)書き方を容易にできてしまう. 個人的な意見では現時点でのJulia言語について最も改善して欲しい所がこの問題. \n\n無用にメモリを消費しないような書き方できれば計算も自然に速くなる.\n\n**解決法:**\n\n* dot syntax をできるだけたくさん使う. More dots! `@.` マクロを使用可能ならそうする.\n\n* in-place 計算(すでに確保した配列ないでの計算)を利用する. `=` ではなく `.=` を使う.\n\n* `@view` および `@views` マクロを使用する.\n\n* 配列の計算を別の函数に分離して `@inline` を使う(これでうまく行く理由は不明).\n\n* 場合によってはforループに展開するか, それに近いことをする."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### dot syntax と in-place 計算を使う. `@.`マクロの使い方.\n\nhttps://docs.julialang.org/en/stable/manual/performance-tips/#More-dots:-Fuse-vectorized-operations-1"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# テストデータの作成\n\nN = 10^8\nsrand(2018)\na = randn(N)\nb = randn(N)\nc = randn(N)\nd = randn(N);",
"execution_count": 45,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 次のセルよりかなり遅い. メモリ消費量の巨大さにも注目!\n\ns = Array{Float64}(N)\n\nfunction mysum_slow1(a, b, c, d)\n a + b + c + d\nend\n\n@benchmark s = mysum_slow1(a, b, c, d)",
"execution_count": 46,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 46,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 2.24 GiB\n allocs estimate: 6\n --------------\n minimum time: 1.194 s (0.56% GC)\n median time: 1.456 s (23.73% GC)\n mean time: 1.956 s (32.53% GC)\n maximum time: 3.216 s (48.38% GC)\n --------------\n samples: 3\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 次のセルより遅い. \n# 前もって配列 s を確保してあるのに, 新たに同じサイズのメモリが消費されてしまっている.\n# その理由は s = mysum_slow2(a, b, c, d) の = の右辺の分の配列が新たに確保されているからである.\n\ns = Array{Float64}(N)\n\nfunction mysum_slow2(a, b, c, d)\n a .+ b .+ c .+ d\nend\n\n@benchmark s = mysum_slow2(a, b, c, d)",
"execution_count": 47,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 47,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 762.94 MiB\n allocs estimate: 67\n --------------\n minimum time: 564.325 ms (0.45% GC)\n median time: 648.005 ms (5.10% GC)\n mean time: 896.127 ms (29.18% GC)\n maximum time: 1.953 s (58.50% GC)\n --------------\n samples: 6\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# in-place 計算の使用によって代入操作も dot operator 化すると効率がよくなる.\n#\n# s .= a .+ b .+ c .+ d の代わりに @. s = a + b + c + d と書ける.\n\ns = Array{Float64}(N)\n\nfunction mysum_atdot1!(s, a, b, c, d)\n @. s = a + b + c + d\nend\n\nmysum_atdot1!(s, a, b, c, d)\n@show s == a + b + c + d\n\n@benchmark mysum_atdot1!(s, a, b, c, d)",
"execution_count": 48,
"outputs": [
{
"output_type": "stream",
"text": "s == a + b + c + d = true\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 48,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 128 bytes\n allocs estimate: 4\n --------------\n minimum time: 331.488 ms (0.00% GC)\n median time: 335.708 ms (0.00% GC)\n mean time: 336.652 ms (0.00% GC)\n maximum time: 354.369 ms (0.00% GC)\n --------------\n samples: 15\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 上と本質的に同じ\n\ns = Array{Float64}(N)\n\nfunction mysum_atdot2!(s, a, b, c, d)\n s .= a .+ b .+ c .+ d\nend\n\nmysum_atdot2!(s, a, b, c, d)\n@show s == a + b + c + d\n\n@benchmark mysum_atdot2!(s, a, b, c, d)",
"execution_count": 49,
"outputs": [
{
"output_type": "stream",
"text": "s == a + b + c + d = true\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 49,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 128 bytes\n allocs estimate: 4\n --------------\n minimum time: 327.964 ms (0.00% GC)\n median time: 329.784 ms (0.00% GC)\n mean time: 330.356 ms (0.00% GC)\n maximum time: 340.399 ms (0.00% GC)\n --------------\n samples: 16\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### 注意:配列への代入と配列の要素への代入の違い"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@show a = 0\n@show b = Array{typeof(a),1}(2)\n@show b[1] = a\n@show b\n@show a = 1\n@show b[2] = a\n@show b\nprintln(\"\\n以上は「意図した通り」だろう.\\n\")\n\n@show a = [0,0]\n@show b = Array{typeof(a),1}(2)\n@show b[1] = a\n@show b\n@show a = [1, 2]\n@show b[2] = a\n@show b\nprintln(\"\\n以上も「意図した通り」だろう.\\n\")\n\n@show a = [0,0]\n@show b = Array{typeof(a),1}(2)\n@show b[1] = a\n@show b\n@show a[1], a[2] = 1, 2\n@show b[2] = a\n@show b\n\nprintln(\"\\nb の要素がどちらも [1,2] になってしまった!\\n\")\n\n@show a = [0,0]\n@show b = Array{typeof(a),1}(2)\n@show b[1] = copy(a)\n@show b\n@show a[1], a[2] = 1, 2\n@show b[2] = a\n@show b\n\nprintln(\"\\nこのように b[1] = a を b[1] = copy(a) に置き換えると「意図した通り」になる.\\n\")\n\nprintln(\"\\n次のセルのように2次元配列を使っても「意図した通り」になる.\")",
"execution_count": 50,
"outputs": [
{
"output_type": "stream",
"text": "a = 0 = 0\nb = Array{typeof(a), 1}(2) = [154736272, 154893040]\nb[1] = a = 0\nb = [0, 154893040]\na = 1 = 1\nb[2] = a = 1\nb = [0, 1]\n\n以上は「意図した通り」だろう.\n\na = [0, 0] = [0, 0]\nb = Array{typeof(a), 1}(2) = Array{Int64,1}[#undef, #undef]\nb[1] = a = [0, 0]\nb = Array{Int64,1}[[0, 0], #undef]\na = [1, 2] = [1, 2]\nb[2] = a = [1, 2]\nb = Array{Int64,1}[[0, 0], [1, 2]]\n\n以上も「意図した通り」だろう.\n\na = [0, 0] = [0, 0]\nb = Array{typeof(a), 1}(2) = Array{Int64,1}[#undef, #undef]\nb[1] = a = [0, 0]\nb = Array{Int64,1}[[0, 0], #undef]\n(a[1], a[2]) = (1, 2) = (1, 2)\nb[2] = a = [1, 2]\nb = Array{Int64,1}[[1, 2], [1, 2]]\n\nb の要素がどちらも [1,2] になってしまった!\n\na = [0, 0] = [0, 0]\nb = Array{typeof(a), 1}(2) = Array{Int64,1}[#undef, #undef]\nb[1] = copy(a) = [0, 0]\nb = Array{Int64,1}[[0, 0], #undef]\n(a[1], a[2]) = (1, 2) = (1, 2)\nb[2] = a = [1, 2]\nb = Array{Int64,1}[[0, 0], [1, 2]]\n\nこのように b[1] = a を b[1] = copy(a) に置き換えると「意図した通り」になる.\n\n\n次のセルのように2次元配列を使っても「意図した通り」になる.\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "a = [0,0]\nb = Array{eltype(a),2}(2,2)\ndisplay(b)\nb[:,1] = a\ndisplay(b)\na[1], a[2] = 1, 2\nb[:,2] = a\ndisplay(b)",
"execution_count": 51,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "2×2 Array{Int64,2}:\n 129247824 92602512\n 92504192 92614672"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "2×2 Array{Int64,2}:\n 0 92602512\n 0 92614672"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "2×2 Array{Int64,2}:\n 0 1\n 0 2"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "a = [1.2, 3.4]\ns = zeros(2)\n@show a\n@show s\n\nfunction f(s, a)\n s = a\nend\nf(s, a)\n\nprintln()\n@show s\nprintln(\"函数内の s = a によって s の内容は変化していない.\\n\")\n\nfunction g!(s, a)\n s .= a\nend\ng!(s, a)\n\n@show s\nprintln(\"函数内の s .= a によって s の内容が変化している.\")",
"execution_count": 52,
"outputs": [
{
"output_type": "stream",
"text": "a = [1.2, 3.4]\ns = [0.0, 0.0]\n\ns = [0.0, 0.0]\n函数内の s = a によって s の内容は変化していない.\n\ns = [1.2, 3.4]\n函数内の s .= a によって s の内容が変化している.\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### `@view` および `@views` を使う.\n\nhttps://docs.julialang.org/en/stable/stdlib/arrays/#Base.@view\n\n配列の部分配列に素朴にアクセスすると部分配列の大きさのメモリが新たに使用されてしまう. `@view` および `@views` マクロを使えばそうなることを防げる. (`@views` マクロは `@.` マクロの `@view` 版である.)"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 計算結果確認用のプロット函数\n\nfunction plot2pcolormesh(u, v; cmap=\"CMRmap\")\n sleep(0.1)\n d = size(u)[1]\n figure(figsize=(8,2))\n for i in 1:d\n fig = subplot(div(2d+2,4), 4, mod1(2i-1,4))\n pcolormesh(x, y, @view(u[i,:,:]), cmap=cmap)\n #colorbar()\n fig[:set_aspect](\"equal\")\n fig = subplot(div(2d+2,4), 4, mod1(2i,4))\n pcolormesh(x, y, @view(v[i,:,:]), cmap=cmap)\n #colorbar()\n fig[:set_aspect](\"equal\")\n tight_layout()\n end\nend",
"execution_count": 53,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 53,
"data": {
"text/plain": "plot2pcolormesh (generic function with 1 method)"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# テストデータの作成\n# 3次元配列をベクトルの2次元配列であるかのように扱う\n\nn = 1000\nx = y = linspace(-5, 5, n)\nf(x, y) = x^2 - y^2 # ラプラシアンを作用させると0になる.\ng(x, y) = exp(-(x-2)^2-(y-2)^2) + exp(-(x+2)^2-(y+2)^2) # 混合ガウス分布\nu = Array{Float64, 3}(2, n, n)\nu[1,:,:] .= f.(x', y)\nu[2,:,:] .= g.(x', y);",
"execution_count": 54,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 平面全体での離散ラプラシアン\n#\n# laplacian_local! は離散ラプラシアンの値を局所的に計算する函数である.\n# このように, 局所的なラプラシアンの計算を別の函数として分離しておく.\n# u[:,i,j] が平面座標 (i,j) における u の値(ベクトル値になる)を表現していると仮定する.\n# v に離散ラプラシアンを施した結果を返す.\n#\nfunction laplacian!(v, u, laplacian_local!)\n m, n = size(u)[end-1:end]\n for i in 1:m\n for j in 1:n\n laplacian_local!(v, u, m, n, i, j)\n end\n end\nend\n\n# 何も工夫していない laplacian_local_naive! を使用すると非常に遅い.\n#\nfunction laplacian_local_naive!(v, u, m, n, i, j)\n v[:,i,j] =\n u[:, ifelse(i+1 ≤ m, i+1, 1), j] + u[:, ifelse(i-1 ≥ 1, i-1, m), j] +\n u[:, i, ifelse(j+1 ≤ n, j+1, 1)] + u[:, i, ifelse(j-1 ≥ 1, j-1, n)] -\n 4u[:, i, j]\nend\n\nv = Array{Float64,3}(2, n, n)\nlaplacian!(v, u, laplacian_local_naive!)\nplot2pcolormesh(u, v)\n@benchmark laplacian!(v, u, laplacian_local_naive!)",
"execution_count": 55,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "PyPlot.Figure(PyObject <Figure size 800x200 with 4 Axes>)",
"image/png": "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"
},
"metadata": {}
},
{
"output_type": "execute_result",
"execution_count": 55,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 1.10 GiB\n allocs estimate: 22868001\n --------------\n minimum time: 2.859 s (42.05% GC)\n median time: 2.897 s (41.53% GC)\n mean time: 2.897 s (41.53% GC)\n maximum time: 2.936 s (41.02% GC)\n --------------\n samples: 2\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# @view を使うと少しだけ速くなる.\n\nfunction laplacian_local_view!(v, u, m, n, i, j)\n v[:,i,j] =\n @view(u[:, ifelse(i+1 ≤ m, i+1, 1), j]) + @view(u[:, ifelse(i-1 ≥ 1, i-1, m), j]) +\n @view(u[:, i, ifelse(j+1 ≤ n, j+1, 1)]) + @view(u[:, i, ifelse(j-1 ≥ 1, j-1, n)]) -\n 4*@view(u[:, i, j])\nend\n\nv = Array{Float64,3}(2, n, n)\nlaplacian!(v, u, laplacian_local_view!)\nplot2pcolormesh(u, v)\n@benchmark laplacian!(v, u, laplacian_local_view!)",
"execution_count": 56,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "PyPlot.Figure(PyObject <Figure size 800x200 with 4 Axes>)",
"image/png": "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"
},
"metadata": {}
},
{
"output_type": "execute_result",
"execution_count": 56,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 823.64 MiB\n allocs estimate: 12978001\n --------------\n minimum time: 1.214 s (36.18% GC)\n median time: 1.265 s (36.14% GC)\n mean time: 1.264 s (36.15% GC)\n maximum time: 1.312 s (36.14% GC)\n --------------\n samples: 4\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 上と同じ. @views を使った方が簡潔に書ける.\n\nfunction laplacian_local_views!(v, u, m, n, i, j)\n @views(\n v[:,i,j] =\n u[:, ifelse(i+1 ≤ m, i+1, 1), j] + u[:, ifelse(i-1 ≥ 1, i-1, m), j] +\n u[:, i, ifelse(j+1 ≤ n, j+1, 1)] + u[:, i, ifelse(j-1 ≥ 1, j-1, n)] -\n 4u[:, i, j]\n )\nend\n\nv = Array{Float64,3}(2, n, n)\nlaplacian!(v, u, laplacian_local_views!)\nplot2pcolormesh(u, v)\n@benchmark laplacian!(v, u, laplacian_local_views!)",
"execution_count": 57,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "PyPlot.Figure(PyObject <Figure size 800x200 with 4 Axes>)",
"image/png": "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"
},
"metadata": {}
},
{
"output_type": "execute_result",
"execution_count": 57,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 823.64 MiB\n allocs estimate: 12978001\n --------------\n minimum time: 1.297 s (35.39% GC)\n median time: 1.321 s (35.48% GC)\n mean time: 1.370 s (35.53% GC)\n maximum time: 1.540 s (35.79% GC)\n --------------\n samples: 4\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# さらに @. を付けるとかなり速くなる.\n# しかし, なぜかメモリが結構使用されている.\n\nfunction laplacian_local_atdot_views!(v, u, m, n, i, j)\n @. @views(\n v[:,i,j] =\n u[:, ifelse(i+1 ≤ m, i+1, 1), j] + u[:, ifelse(i-1 ≥ 1, i-1, m), j] +\n u[:, i, ifelse(j+1 ≤ n, j+1, 1)] + u[:, i, ifelse(j-1 ≥ 1, j-1, n)] -\n 4u[:, i, j]\n )\nend\n\nv = Array{Float64,3}(2, n, n)\nlaplacian!(v, u, laplacian_local_atdot_views!)\nplot2pcolormesh(u, v)\n@benchmark laplacian!(v, u, laplacian_local_atdot_views!)",
"execution_count": 58,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "PyPlot.Figure(PyObject <Figure size 800x200 with 4 Axes>)",
"image/png": "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"
},
"metadata": {}
},
{
"output_type": "execute_result",
"execution_count": 58,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 305.18 MiB\n allocs estimate: 5000001\n --------------\n minimum time: 162.555 ms (15.99% GC)\n median time: 218.274 ms (16.50% GC)\n mean time: 219.834 ms (16.48% GC)\n maximum time: 308.401 ms (14.22% GC)\n --------------\n samples: 23\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### さらに `@inline` をつけると効率が大幅改善する場合がある.\n\nこれでうまく行く理由は不明."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# さらに @inline をつけるとかなり速くなる.\n# メモリの使用量がほぼゼロになったことにも注目!\n\n@inline function laplacian_local_inline_atdot_views!(v, u, m, n, i, j)\n @. @views(\n v[:,i,j] =\n u[:, ifelse(i+1 ≤ m, i+1, 1), j] + u[:, ifelse(i-1 ≥ 1, i-1, m), j] +\n u[:, i, ifelse(j+1 ≤ n, j+1, 1)] + u[:, i, ifelse(j-1 ≥ 1, j-1, n)] -\n 4u[:, i, j]\n )\nend\n\nv = Array{Float64,3}(2, n, n)\nlaplacian!(v, u, laplacian_local_inline_atdot_views!)\nplot2pcolormesh(u, v)\n@benchmark laplacian!(v, u, laplacian_local_inline_atdot_views!)",
"execution_count": 59,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "PyPlot.Figure(PyObject <Figure size 800x200 with 4 Axes>)",
"image/png": "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"
},
"metadata": {}
},
{
"output_type": "execute_result",
"execution_count": 59,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 32 bytes\n allocs estimate: 1\n --------------\n minimum time: 85.451 ms (0.00% GC)\n median time: 86.071 ms (0.00% GC)\n mean time: 90.975 ms (0.00% GC)\n maximum time: 115.348 ms (0.00% GC)\n --------------\n samples: 55\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### forループに展開するともっと速い."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# forループに展開するともっと速い.\n\n@inline function laplacian_local_inline_for!(v, u, m, n, i, j)\n for k in 1:size(u)[1]\n v[k, i, j] =\n u[k, ifelse(i+1 ≤ m, i+1, 1), j] + u[k, ifelse(i-1 ≥ 1, i-1, m), j] +\n u[k, i, ifelse(j+1 ≤ n, j+1, 1)] + u[k, i, ifelse(j-1 ≥ 1, j-1, n)] -\n 4u[k, i, j]\n end\nend\n\nv = Array{Float64,3}(2, n, n)\nlaplacian!(v, u, laplacian_local_inline_for!)\nplot2pcolormesh(u, v)\n@benchmark laplacian!(v, u, laplacian_local_inline_for!)",
"execution_count": 60,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "PyPlot.Figure(PyObject <Figure size 800x200 with 4 Axes>)",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAC2CAYAAABEShvUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs/V+MJMl53gv/IjIrq7qnuqd3d3ZmdrjL1ZJcUlxrDyRR9JK0RPiKtAwYFj4DJowPlH0jQzAh2CZ8I8gGTFvwwoAB2YRl6RgQJAuGZV34CLJh2ZZ0QUm0KQMiTMHH0uFZWaR2l7uzw5nZnp7q6qqszIhzERmZkZGRVdX/e3riGSQyM/JPZVV11sQvn/d9Q2itNVFRUVFRUVFRUVFRUceQPO8LiIqKioqKioqKiop69BXBIioqKioqKioqKirq2IpgERUVFRUVFRUVFRV1bEWwiIqKioqKioqKioo6tiJYREVFRUVFRUVFRUUdWxEsoqKioqKioqKioqKOrQgWUVFRUVFRUVFRUVHHVgSLqKioqKioqKioqKhjK4JFVFRUVFRUVFRUVNSxFcEiKioqKioqKioqKurYOlWw+Pt//+8jhGhNN2/eXHrMb/3Wb/GRj3yE0WjE+973Pn72Z3/2NC8xKurMFO+HqKhG8X6IimoU74eoy6L0tF/gT/2pP8Vv/uZv1utJkvTu+41vfIM//+f/PD/yIz/Cv/7X/5r/+l//K3/jb/wNnn76af7SX/pLp32pUVGnrng/REU1ivdDVFSjeD9EXQadOlikabqSuq1+9md/lve+973803/6TwH48Ic/zO/93u/xT/7JP4k3StSlULwfoqIaxfshKqpRvB+iLoNOHSxee+01bt26xXA45JVXXuEf/aN/xPve977gvl/5ylf41Kc+1Wr79Kc/zc/93M+xWCwYDAadY+bzOfP5vF5XSnH//n2eeuophBAn+2aiHllprXn48CG3bt1CyvNLLTrt+wHiPRG1WvF+iPdDVKN4P8T7Iaqt49wTpwoWr7zyCr/4i7/IBz/4Qd555x1+8id/kk984hP8r//1v3jqqac6+9++fZsbN2602m7cuEFRFNy9e5dnnnmmc8yrr77KF77whVN7D1GXS2+88QbPPvvsubz2WdwPEO+JqPUV74eoqEbxfoiKauso98SpgsUP/uAP1ssvv/wyH//4x3n/+9/Pv/pX/4rPf/7zwWN8YtZaB9utfvzHf7x1rgcPHvDe976Xb7zyAdJkzERtMtGbPFRXmOkRUz1iojeZ6Q2meshMjZjrjLkemLnKyKvlhU7r5UILSnIKFigKFAUFOYqSkgJNQUmBokTVy2au9RytC8pyjlKzelnrAq0LlJqjlFkGsw7UbWYqq+04+9rPyF0ul34nQiTOctqaS5kiRFrvY5bTqj2p1ketdSlHSJkg5QghUpJkiJQjICURAyQpkpSEFElSzVMEKSmDeltCVm0bkAlBKgqGYsFQ5AxFTipKNuSMAQUbcs5Q5GQiZyRzNsQBW2LKSMwYi302xYyxnLIhDhjLKcN0xrtiwQtfeoOtra2ln89p6izuB+i/J/7kY+9jO+2P2XUlhUJpGVz3tx3mPIeVFApg6Tnsa6x6rdB+/vndfZa97rLXWvbZrXOeVfsvu651tVeUPP+7f/xY3w9RUb4e5/vhq//XC4yvxEKhpyKx3v+7rOi/naUm+4qP/P++caR74tRDoVxduXKFl19+mddeey24/ebNm9y+fbvVdufOHdI0DRI7wHA4ZDgcdtp3Nku29YyJSnioUsZ6wFQnHKiEh7pgqgsOVMpDDXMNcyWYazPNtGSuJYWWzHTCXCUsSJmrcQ0WJQUleQ0QPkz4bRpFmeYOWMxqaHCX7TrQajMAUrTarfqWQ7IQ4S67cwsXdr0NF2kNEP56kozq9YQUgXSAopm7yylZBywyUTIUOQOhGYqSoZQMhWQgFCORMBQlGxKGAjaFYkMs2BQFW3LBhsjZkjmbImcs52yKOcM0pxwpclFW7+niWL2ncT9A/z2xnSaHAAvhdY6F0/kWhwCL9fftOx5Y2lFvXqP/vZkOedLZr+99uq8b6swve1/LPruuute86tz+tRxHj/P9EBXl63G+H8ZXJFtX1uwAR/VrXYgIKnDsOcPGUe6JMwWL+XzOH/7hH/IDP/ADwe0f//jH+Q//4T+02n7913+d7/u+7+uNF+yTGpSgF2zkB6aoroKEsl4GWu2JVEhdTUqRoJiTAZBIxVxn9bzQKYIciUTWgCERyHqunGVNSkmBEBKdZJQ6R8oRSs1QqqiXLTxIOeoAhdYFSdKGChciLHSsKym7UBECjBBcNE6FBxcBoBDIDlxYoGhDRcJQ5gwoGMqckcgr18IsW+diKM18U8zYEAdsihlbcr9ebtoPGMk5RVZSZgVKHO7zOQud5f1wkjottyL0pL/v9d19Q9DhnyvkCoTaQ+dc5z0c15k56/NeRD2q90NU1Gko3g+PkI4FE4c49wVyNJbpVMHi7/ydv8Nf+At/gfe+973cuXOHn/zJn2Rvb4+/+lf/KmAsuW9961v84i/+IgA/+qM/yj//5/+cz3/+8/zIj/wIX/nKV/i5n/s5fumXfunQr12MFpTa8N94UXVQqlkqyxooUlmSaLMuqx0SqUgcyEhFilQKSYasgEPoISUpkqLqTBtnQjpORXs5rVwMhRQpWijKCiAMVIy80Kc2VLgw4YZE2Ta/Kp3vXLhOhbveBxhrw0UFEhYgloFFN+wprV2KgZhVTkXRmrswYQBjbuBBztisYGIs9zvLw/TAQMVoYSbOHyzO8344rvrCdZZ1fJd15tcJFwqd1+7X99qrrsk9vk/rhH0tu/bDXNOq9+1fx2WCjEf5foiKOmnF++ER02nCxDqveYEh41TB4s033+Sv/JW/wt27d3n66af52Mc+xu/+7u/y/PPPA/D222/z+uuv1/u/8MIL/Nqv/Rp/+2//bX76p3+aW7du8cUvfvFIpdPK0YKylAglkdByLgAKmTTOBYCEqd4ARe1U2HapFUhItGKmMxKtWOi0ci+yyqkIuxaqgg8DGBJp0AKFMm6GSNFJhkLVroULFFK2ocKHiZB7sUp94VAuZKwCDBciZPV+LSj4cNEfEtW4FB2gCLoWbajYEvstwOg4FRVUqKyk5PxvwvO8H05aoSf7vpZ1uNfpfLuOhf96fZ3/VcDTl1vRdy3r5EaE8jbWzbE4LGxcJgfjMt0PUVHHVbwfHhGdB1CEZK/jAgKG0Dbb55Job2+Pq1ev8ub//wl2GJDMBiR5QjIbwGLARF1hqkc8VFc40BtM9Yip3uBAmcRu22YTuW0St0nwNst2faHTKvcio6yStkO5FhrVWdaoel05y3Z9nfyKZbkVbmiUBQZXofwKOw86FRU82MkChAsXIYdC1tvdUKgBA1HUkwsUqSgY+Y6FyBnJuQcQYcAYpgeUFVSorKAcFRSjBbsseOH/nPLgwQO2t7dP8C/u4sveE+9+/4tr51hEXW7tFSVPfPm1x/p+iIry9TjfD1//L++PORbLdFigOAkAOQw0nDBgPNwv+dCn//eR7okzzbE4S5WjAqUEQpnEk5ZzAZT+l+7mXnhtUqh6LlWGFKrlXiCh0CmFzjquRZ1fUTsYlVOBoqzmElXvV69X4VIWMvryK1zgcLVkwM6WY+G7FO6yDxOiwgRBN/zJBYpQ+JNAkpKRCk0qui5FXwjUgKIXKrbEpAUY1qlQWdGCCpUVK6tlRbV1UZ6MH6Yq1DrnWlWB6TSqQh1WF+Wzj4qKiopifUhYZ7/QPn39k8OEPonkwrgXlxYs1KCgdLLZC8ybTZjXOReJLkm0IlHmy6hzL4Rps0ndC522ErhnOiOpAGBe5V0sSFmItAIMN/ypaAGG61RIZ90ESKW1a1E7Fyi0MHMEdTt0w6GsQmFRfTkWda4FpiMTAgmzPV0JF75D0XYrkg5ADERRhzoNKqci9QAj5FCEACNN8zr8yUJFWQPGguIQoWJRJ6PjlqXtS95edu5loVChMKt18hsOe/3rhkFFRUVFRV1gHRUUTsrdcEFhndCnCxIedXnBIqvAQnXhwnUuwDSUKiGhpJCJSeZ2HAyb1O0uLyqw8F2MRQUICz0IuhauU+GuywBQ+G1A3Q6gLSxUwNF6/61r7nZshAMS/nyZU3GUUKhlLoUf+pQ6gLEOVGyKA9I0p3SdClsJKitMfkVWolV/JzWqq5PoDB/mHKsSpJdtCy2veu2T3n6YHIpViiAS9SjLf4i1SofJD4yKOjOtggN/e2h/ecRwqOphd9CxWBcwzhEuLi1YlKMCpduhUABltV47F07p2USNADhgA6CuGGWTul2IGOiUmc6QWtWuxpyMVBRIlTEQRZWPMaSkbAGGrRDlrluAMOsNUACNc+G0udusXLjo+3MWDmTIAFSsAxiue7HMrTBAsaiBwoUJW1Y2lLg9EIsaHIbkK50KCxXlaBHMr9CZAhWKdYvq01k/aT9OadrDJG+7x8PRQp1WXcNhz3MSx0RFnZcOCxKrjo+gEXXuWgYVy4DCB4nQvbFOKJT/86/KLlCsAoxzdC8uLVjogTYdeg8ohONghJwLt++ZuJWEnOpQUptxLsw+qnYvABQSZFUppnI0bP5FKL/Crlt48NfNS4dBw26r3/MaHWcXLHy3woKEbTuqW5EKjaTsgERr3XEmXMgYyXkLJjKxWNOpKIOuhc4UZLJyriJYuDrsqM92O/SPHWG3LVsOQYB/fv9Y//hlDsE6eRKrwqhWvXe73Pc+/dfxz7lulafQNa0KGev7zFe9v6iodbUMJo7rWNjjI2BEnYvWhYo+oKgjSdZwNNxtftiTbvc/gaMDxhnDxaUFC7IELRUFi86b1LIphOU6F3YAvSb3YlTtY/ItDtggoWTOsIYJM8aFcTGkVlV+hcm5cMOjUiEpdEpZORhd18LCQ9pxKHpDoby5lQp0oP1wqMOEQpnPIO24F75b4QOFRAXhIhQKZUOfsiqvIluRXxFyKkKuBVkCowRKCRdgLIuLpMOGH606Zp3Ssn1hS+skabv79nXY+67H7rusra/z3Zc/sey99V3Tuu2r3suqcywLDzPzi5HkF/VoKQQNobZQJcKQlCpax7sw0dceFXUqOg5Q+DCxDoC4coEBDAiEgGAVYFwQuLjEYCFBCrQqKavKSa5b0edclByQUlLqJFgpyroY1o1AUY9x4boX7ZwLk5q9qIAjQVajd4ddi2X5FtANg3LBwuwbVsitMO8l7FS42/wxK9rrogMTUqigSxGuBjVnKBZsiIPO3A2JssDR71S0XQsyWU0JlIcflv6ySQqFFOt/Dqf9ZLvPrVjHNVh3lG57Pne/Vc6JP193edl7O4qOenyfY3QS5456PLUKKHyQWNe1kM5/VqsgI8JF1LkoBAnLgKJvn9D56jan068LIGngIQQEPmBcMLi4vGAxSCBRoEzgUUeq3cGyzkWiSqaOc2HnU628+UadX+FWiaoTuivQsB3tReVk2OXGwRgEXIswZMDhwqBsmwigRp9jsU7itnErEhKhaoeiDyhc18KvAmX2WwSditqxWOJUqE6SdrNcA0WWmOUIFktDiM5LfWE96z7hP0zVqdBxR6kCdVgn5Kg6zvGr3pe6XMMXRZ2i+ioKQrtceWh7CDD6gCFJ0lYZdT8kKoZIRZ2a+tyKPqhwgcKFChcmfPdiVTK47fRru3/ZhoyQi1EDhnOOCwAXlxcsMgmJAKUNXGSFcSmybq4FAEqQqIJM52u/RErJlBEj6DgVrnuxIK2hQ2FyLxY6JRGKsgIMoQfoCin6XAvrRixL4Hbbfa1K3LZzt8xsyJ0wQNGAQyJUHerkLkuhWi6F61wMRU4mFnU+Rd/8KFChMw1Z6jgWEoqL1aG+CDrNsRgOcw1W63bO+yCh7/zHBapVn8VFg7WoqJPQYYCib+7vH3IlQm6EdTL6ACPCRdSJaRVULHMp7BSCjVXOhS/7N20rQumyCxkqAAW6MK/huhexKtQpKZOQaFDNH03Jol62Sd3NugCpSWeQlE61KKjzK8DAhJ3b3Ispo6BT4bYpnPhtx7mwIVKlMJ0fhaxcjC5kgDeORcC5sPLhwnctQk6FXe+6FaJ2J6RoOzHWobBAkaBaYU8uaPihT1kFF26Stj9fBRWlt2ygImmHQWUJyOhY+LoInWU/V+KwOQvLwnwsUBxnAL119/ePjbAR9SirDyqWDahqt/fBhdneLLuDvboDvbqw4QNGhIuoE9VRoCIEFH6bu2/ofL50CWTVa1XuhAsaFjJcwHDBoQ8u6nN77+2UoePygsUggVTVjgWpdS5KhBKUjnOhlEBk1QedCZKclc5F4oVXzR2oCLkXpZAmubtK6rZJ3tbBqLrtFWhUT3cCkAG0QAPaEBFK3HblJnGvdiu6QGFdCn/dD3vqJG47oU8WKmzIUwgm3OTtNM1RqTJQkaoWSKisQKeqggoVgApZ59tEra/Tciz6zttXLjaUE9HXgffdicO6FYdNsF6nSlVU1KOmUCjTMqCwMOFvc4/z1QWJNmSEHIwQXNhjoqIOrZOGiiRrr9tzHMWxsKChyzZMqKpfGsj/bdrXcCxOGS4uL1hkElJhPnwLF4CmpHTtJD8kqlJK3nIuXJCwTkW9LEzeRUrJnEHQvVDIGjrKatm6FDVYVOsDUVBa98JzMsx70C2AcMEi5F5Y9bkWIZAAWu6EaVet8CcfKNz8ilDytg19ykQeTNZ2YcK2W6dCpyUqK1Fp2YIK5ZeV9XMr7Hrkiguho1SdioqKOhv1QYUPEz5QSDlaCzB8oLDLZTlrQYYLGHa/xr2gPs6+RoSLqBNRCCr8ECcfIEQCybAfOkLn9eWChKRxLHy3QiZQ5l33QjkPwn246IOIU4SLyw0WUhm4yJKG7pRGZ8q4FMo8Be9Tn3PRggxbGcrvuGrTZjvm1oWwy0mVZ6FE89TTrpeVa6CQSC1RwvyiWsgAsLWfSi2BBM36yZjCudhEKEDXMGTeXxsmlgGGhQjfvfBdikSo2pUIwYXrYLhQoVKFTqtqTzVcqBo0rHtBKp1JVN97BRWpAB3J4iKqL1m7z61Ylih9lMTudcvcuq/jh1ot2/es1TemSBzHImqVlkFFsz4KAoWUI4RISZJRL1xYWViwk1IFUo5QataCDCHMsn+slGnHvYiKOpSClZm8ttbYFAGokFkDEDLrD41yz9XnWrh/x8tCnxRm9GPfvbBQosvqejjXnIvLCxaJMOFQlVPhz+2Tk1VynQsLEe7crRzl5l3Y0CibWyGdkKhEG9fC/kdfIusQqdqdoO1YAK12wIyGIezbOlxseP0xOeFViWiWQzARyq9YFg5lci5KNsWMRFRzyjo5u8+58MOf+nIrVFqiU9UNe6odi6QBS315/9RPQ+eRY9EHBn7o0zqgserc/mss288Hl8Oe9yy1LFwsjmMR1adVUGEnCw4uUEg5IklGvXDhh0O5ToRSM5Sy8xllOashw0KF717Y3AsXLiJkRK2tVVARypNwocJChHUpQoABXbdjnWvSJSRpNyxK5KZNJAYobHlaCxs2NMoFCJtz4b7GGeVbXN7eVpaYcrPWrUhtroU065lGUVWKUgKhysbFUGUVIlWVwbPOhTauARrnizQv50KFHxqFNhCyoKkGVbsWVbWlpAqRsjkW1rEYQAMZFUhY+BhgHYvmOvpHsTByQ6VckIB26JPdvgwo/BAotwqUFKrjTmROJaiQQ7EUKlJVg4QbGqUzDakDFan0lhNIEkg3jvsX9VjprJ+4n+RrHbUkbVTU465VUOHCg5Qj0nTcAos0HdfgkYisk8fXqnRYgUVZzmqwKIpJ1WZesyxTlJoBs1YIlHmN9gPCCBdRx1YLMNaEilVhUP55170OGxaFhY6kDRQA5dxcg4UL7bxOndDNmboVcJnBIs1gsKghouNcVMsqW/aBp1i48J2LkFNRqwqDAmr3ItdN7sXCHZ3bSdxekLaSuW27zYEweRYShBMKJQ5ficYNeQI6IGH3qatb2eUlQGGdC+tShEBiHbjwoUKnZZO4bfMpqtCoVgUoCxE+YAxSSDehyNb6bB4nndb4CyeldRO91z2Xf/y6Wjf06rx1kb67qEdHoXyIPpciSUYkybieW7BI07FZJ0OSkpAiSVvFQKwMVhQoUVAmBSopKPSMspzUbkVRTCiKCUKkKJVSFNShUVKOHOciRamYbxG1ppa5Fb7TsAwqZNZt78ursFqnc+8fYwHDhj/VY104f+O1u4HZr8y725aFRJ2Ca3F5wSLJYKCbxG0LF9bBqJa1KlGUTXWojmORIlRJiXEuNpjVTkWpu0nBfY5FKnz3ooGKkGthQ6Dsuu9YAEHXYpljEXIrbLufX9FaP4RjYaEhEeXaUOGOqO1Wf6pzK5xqUK0KUDafooYL0YaKVJq/g2TDzKNaWtZpvwhalb9wmFKyJzmOxVHA5ix0ka4l6tFQaLwJ36nwoaKGiNROO6Rk1TQiISUha8GFVeNYFJQUlOSUFCxERpka18MChXEsJhQFpCl1aJSdx/KzUSeuUI5ECzKGDUiEHAxow4H2HIa+v1E/98LNz6jXy7ZDYTcrqsTurFluvSfOPCTqEoPFhhnHIi0dqLBzW17CLGtMZ7WrxrFIoAUXh3Esksqx8N0L36FwQ6Bs0rZdhyokyncsjpBn0edYWGBwl1flWDSOReNSHMWxGMiC0oGKkGOha7gonZCnKo/COhYuVKQZJJvVj8Fgrc8myugid1JXlZs9ifMepz0q6lGTmwsRCn+yzsRgsNPARDomk9ukZGRskjJiwIiUrAUWidPNUA5YFOSU5CyY1VMiM4psk0VpXnexMNexWOy2rrcsZ47DEvMtotbQOm6Fv03a8KYs7FS4ydzueWwidauyU8Bx8CtOLUsAB3MN9ljtXXM5byCnnDft5xASdXnBQg7NQCNpCWru5FjolmNhl3VvjkVa519IqOYFWXl0x8IuS6pxLSxMOICRCih02sqxkFRQUTkZYL5AtaZjAW3XogMYR8qxMBWffJfiMI7FQBa1G7HMsWgla7cqQMnGsbDtg9TcYElmfgDS0bH+nC6jLsLI2yepR+16o6LOU6GqTW6bhQoXLixUDAY7ZGJMxiYDRmRs1ssDRozkgpHIScWcAU0n3zrvc5Ux11eY6TEFM3KmLKp5TopIZGeE7qJolqVM0U5BjphvEXVs+R16d106nfwQVPiD0enKXVB5d9kdQTsUdiWHTUK4HJr9OoCBCXkSqXEo7DVa2JAJlNVrCCcZ/IyqRF1isBiYhF1dwqAMV4dy3QtA4f8QNWFQALqqFKBl0nYufPU4FkDbvSAjoaQk6QKGliRCBXMslGiSuoEaNtb+aA5ZFSqcY2GAIqVsuRRJte66F8uqQrlQ0QcXbo5FK1nbQkTmA4YTAiWHJsdicXn/1I+qR7Ujvqoq1Emcd532qKjLIj8EylZ8csOfBoMdsuwaabpTg8SIMcNqGokB23LCpnzIFTllJHKGImcgmv9XSySFTpnpjAM1YqpGTNQmD9U1cqaV02HyNKRMwTOaiwKkdM5Xlaa1ikARFdRh3IoQQNjOvh8K5UOFCxFqDsVBd+6Oqu2Wrk2Gps+Sbpq+q304niyBi5Bc4HDlh0SFPo8Tgo3L29tKN0EKkDkkReVc2KpQuho8TzbuhZKVc9E4Fl2nopnbsKje3O8KLkrKNmhULodtL0VCgQklWuhBK/ypdEKigA5kuPkVShwCLHoqQ4XyLHygcMOeLES4gJGJRWt5mWPRdipKb96FC53qrkvRci8sVFSknwyrGzSDJIZCXRaddSc/QkXUZVPfGBN+9ad2wva4hgoLFCO2GTLmqpxzNXnAtpwwllO2kwlDkbMl9uv/IwByPSDXGRO1yVSP2FebPCjHbKoxD9QYqXZaoVNaKhjQGvMiSYo65Kk9xkZ0LaKOKD/x2ncofNfCrQQFbagoD6CYQjmFxcQsLx467c6DbilMhz/dMGHbgy2znG5Vy5tmvz648N0K38E4h4pQcJnBQg7Mu7NfeJKbMKg6z6Laz4EKlKzAQrWciibXIjWhUtAJizJ7dUvO5tULJTShUQmmPRGKUktynVGKpF4vm258K4lb9uRXtGLO10zeBjogYdtCoVE+UCSiDAKGhQZ3eRVUuHDRVH5SnVyLJoci4FjYNlsFygKFdSySPryPepR1mmVqo6IeB/UlbDehUI1bYaFixDYjthmLK+wkezyV7PJEsscTco8nk12eku+yI/fYFDM25Iy0+t90rgcc6A0eqivsqm3uqSd4N9nmXrHDhppxr9jhgdox12X/L5OgB+1xLCxcuCFRMZE7am2t41b4MCGH3TZo+pjF1DgV+a4BicVDmN8z69MCZqWZimpQZaigQkI2g9FD2LwHwy0YPmVAJNuBQVH1YbPmGloD7zmFaXTZhgxJEx7l51qcYhL3qf5P+uqrr/LRj36Ura0trl+/zg/90A/x9a9/fekxv/ALv4AQojPNZrOlx3XUilXLqs6mE4O/ZLl5Qm7nypmX3rpCJAVZ1Xm2nWjTgXbbAsu4nW53fcFALMzo1RT1gHPuwHP1NsLbQpN/Hnt8aNtQ5M42c03utfrrQ8+dWAUVXYeibOVRtD/n0vmOxJJl2eRUSCe/wq6fs871fggojsD8eOqifO8X7X54XLTMrbCQ0c2rGDMQm3UI1JAxG2zxVLLL9eQ+N9O7PJfe5sXBN3hp8Ee8nH2dl7Ov89LG/8PzV/6YW1e/wa2r3+B94z/i/xj+Yb39w4PX+ED6J9wa3OFmepfr6X2eTA5qJ6TO20i268Rxe23WVXHfjz8Y36OkeD+cklaNIXEYt8LmVVi1nIrKmch3DVAcvAV79+DuDG4fwFtTM725D69PmunNfdN+ewp3D+DBu7D/Bhy8U0HKxJy7zGklgEMFD961+iFa7r5npFN9pd/6rd/ic5/7HB/96EcpioKf+Imf4FOf+hR/8Ad/wJUrV3qP297e7txQo9Ehk2/l0HijSQZqWJFcBmkOqWpcimUhUVAncxuHwiZ1U69L7NgkRTcsKhAC5S6XVX4FQIGq1xOd1CFSJcbBcEOi3HAocHItwLgafR+J16HwnQlz7sadAOowJ+tS2FAnf92vBtVBYYTUAAAgAElEQVRXGcpChfJgopVP4UFGBx76lusQKBcu7Pr5/4dzrvdDQMue0Men95dXF2Xk7Yt2PzyO8t0KIOxYJNt1YraBim2eqJyKp9P7PJve5rnkbZ5L3+aZ5B3EeMpiPGOymdcP4QBEIUlmA7LpPu+ZvMvOwR5bcr/+f8Jqoa+h1ZiCvClNm4xJkhlJYkbrlnKGUmntWoRyLR4l9yLeDxdAtmMOYcCo93E67TanojiooOIuHNyBh3O4P4O9BezOSSYpg8kQmafIwvz/qqWmHC0oNnOK8RQmA9gZwo6C7Tvm/G4+RhkIw4Im/MlNPHdDo8ADktNN4j7V3tZ//s//ubX+8z//81y/fp2vfvWrfPKTn+w9TgjBzZs3j/ficgCJNF94YjPxK8DI3MpQ1f5KA0k915RAlW9h5VSKstJSk5CuhAubU2ErQtlwqMJWYGrBRBgwgBoyzOW0QcN8eOFOYS9UOHBh2ssOTAAdoOgLg/KrQbkhUTVUZGUHJupB7zrtup2UHaoIZZd9oHDdiuT8O8rnej8cUjFh+dHXRf8OH6X74XGRWwWq5Vg4UDFkzE6yz9OpcSqeTd/m/YPX+Y70TbavfJv5k/vkO1MW4znluGhKgitMGMisZDAZkU6GjO7P+ND9B2zOZ2yK5in7QqeUPEmhxk1pWpGj0jFlOUGpEUqNkLKdb2HeQzvX4lFRvB/OSMvCoNxl362QDnSA6UuqCiqsUzF7B6Zvw/25me7OSO8njO4+wWBvg2xvRJkPTfg7iYnqSA/It2cstmfMntxnMZnAbAR5CdcquPCrVemk/T5sW1L1cf1ci7J03t/pP1Q608e4Dx48AODJJ59cut9kMuH555+nLEu++7u/m3/4D/8h3/M93xPcdz6fM583NXv39vbMghyCLKqO5bxarxK5dek4FZVLkWqTMZ9WHkQr30Kg0iqZG+o5gFQCla52LsrqS811xlDAXGM63p57sRwwknoQPaB2O3yXoi+RO1RqFhqYADpA4YKGdSJC6z5IJKIMQ0Wq0FJ1oKJvXoODrMKe7Nx3MUJA4ZablRcvx+I07gdYck94WtXxvOgd06i2+gbyC+13EXXe98PjID/8yW33x7Go4UJu1oPfZWyyKRJ2kns8kexxPbnHc+nbBiq27nBwfY/ZtQnFkyVsZ7A5gpEFCw2FhlnJYi9nsbdX5dAVPHf7DRJKpnpErgccqBFznTFVV+uxLkpyCi8Eyoy8ff5u9Gko3g9noGVhULDcrdCl6TOqKgwq34XZPdjNa6jIbg/ZuLPFxp0t7ubXeLu8wa7aZqqNo5SJBTuLPW7M7/LMu3dIpxmz2YQD9dC8RipB3qmKEWXtilT2elyQ8K/RynUmZLK8OtQJ6MzuSK01n//85/n+7/9+vuu7vqt3v+/8zu/kF37hF3j55ZfZ29vjn/2zf8af+TN/ht///d/nxRdf7Oz/6quv8oUvfKF7IplVjsXQEKWskl90aZbTeTtxOxUYx6I63hnfoqQaUd2vEAW4DsYyuLAQ4Jeb9atDLQOMDDN2hoUU63aUXqqMfS1XrQH8oAUS7nbrRriuBdCq/rQsDMotN2uXW1DRcSZU77wFD53B77wqUL1AYWHjYnWQT+t+gCX3xBqKMPFo6LJ9Txf1friscvMp+hK364msNVbFdvKQJ6QJg7JQsXX1NtPrD5neeoC+NoBrYwMWW8OmUwRVB+wA9nLYzZmPDihHJgTqmTu6AgtTinZWVY8q1WY9zkUqRiw8uLDvxQ+Hct/roxIOZRXvh3OQ7wD4MNHJrSjaIVD5LkymBiruHDC8vcGVN5+guHeN31t8gG8Wz/JWeYOJ2uRAGbAYipyxnHI9ucd3pG/ywdt/zBPT26AEB+w543Lda3KFkyHorAsPMgHlVINyw6EO41KcQHiU0FrrY51hTX3uc5/jP/7H/8iXv/xlnn322bWPU0rxvd/7vXzyk5/ki1/8Ymd7iL6fe+45vv5/f46tDdVk5xcPzR9AMW2Wc2PLkpdmOVfOcmmeruQlIhcmNjRPkXmCLJJ6XRQSWUhEkSALWW+ThUSXaV1eryDpLJfa1JCa64HprlfrBUldHcpvA+p2Kxckit7ixkap8wfmwoRdt/DQrLdBo8+1WBcq3CT4OiTKCY2qx6tIdVNO1lrpo7SaJ00VqCyBNGtKsw3GwbJtk2nCBz/4BR48eMD29vbaf3+npdO6H6D/nnj3+19kO13PublsHdfHXf73OSkXXP2d//1Y3w+Po/xEZ9edcEfXHgx2GA5vkmXX2BA7bPIkm+ywI7a4NbjD84O3eD79Ft+d/QEvZt9k8t77TG8+oLwl4fqGmTavw8YN85ssh02Sa74LB2/Dw124cwB3ZmRvDrjy1g7lO9f5g8UH+J+L7+Rbixv8yeIW7xRPsMcdDtjlgD0Oyjvk+V3y/C6LxS6LxS5KzSiKSVWSdlaHQlmgWBcsHuf74ev/5f1sXbl4zv6xtGr8itYgeN7o2slme+4OVmerQBUPjUsxuwN73zTJ12/uM3gr4cqbO6i3b/I/Fx/if+Yf4q3iBreLazwoxxzoNljcTO9yM73LS9lrvDR4jSeu/Qn7z77L/L053NyAW1dg/Axs3DIVo7Kd5lqhCcsq8wp2qgpVtvxtOa/2ydujgdtjfemSh/slH/r00f6POBPH4sd+7Mf49//+3/Pbv/3bh7pJAKSUfPSjH+W1114Lbh8OhwyHgYo/cggib5K3a9eibJb9RG7lhUc5IVEojUqXJW+3K4j5zkVf8rYNjXKdCXRmcjG06fS7DgY0+1q5YJH4w7x7SkQILFaHQR0leXspVLhJ253QKB1Ozral2erQKMetsA6FSLtuhUiQ8uIks53m/QBL7olDKELF5ZL/fV6k7/dRuB8us9wwKAsb1hFIhXEs0sq1GMtpPd1I7nEjucfsyX1mT+5TXsN0gq5vwNb74cpzMLoOgy1EcsV07m3ISLYDgzeAN0FBPpuQ5CnjyZBbD+9wp7zGA7nFWE55IMccqJEp0U7aqQjlwpLNt3hU8ywg3g/nolB+BXQrKVmoqKtB5abjvnhoSsruLRC7JaO7V9m4s83vLj7E1/KX+KP8vby5uMk9tWDGuyyYoVEM9IihGnOv/AAP1LiOPnnl3j6j0YLF+B5qcwHbC8iq+0ZtVX1YP9ciBfLw+3HzLM5gFO5TBQutNT/2Yz/Gr/zKr/ClL32JF1544Ujn+NrXvsbLL798uANlVsUv5U6ITOmsz5uOal0RigYq7HIV068D+RUtyAASJdFSm0F9pEBLjajgIgdSXYIwy0OdMxcZGXkNDnORQZV7UeqkAo4EHMAodWJG664ho8q7qDoKiT/aYkCJE2PtuxPNsuoka7ttnXyKQ0KFTkvzWVXrSF3PG4CociqkBxlunoULFPapgy3BVn3vQo7oH6by7HSu90PUYyubU+HCxEXIs4j3w8VSe9RtEw4lkKYzT0pCxlDssylm7Mg9duQeW4MH7I/nLLYPYOeKqWhz5TkYfwdceY4ku0WaXqsf7JTlLsXgLso+aS0OIP827OUs9mYU4zk7++bcG3LGUOSMRE5C2lyHyDphUJchzyLeD2cov+MN7fAnt90PgwLTObcOgB0Ab1bAtGCwNyLb3eBbi5sm/GlxnT9Z3OKeesgDbjNjj4WeonXBQJpiCIW+SZnfYlPM2BQH3Ere4QO7DxhMJswnc3Pu4qByJOb9IODnhwT3qca3OMU8i1O9Gz/3uc/xb/7Nv+FXf/VX2dra4vbt2wBcvXqVjY0NAH74h3+Y97znPbz66qsAfOELX+BjH/sYL774Int7e3zxi1/ka1/7Gj/90z99uBe3A5rYhG235KzvWniD5PmlZ6EqQUszErdW1XgXgFCms9tO4qbeFnIu/NwKCxt9uRbglaSlrCEDmuTwdeTmW/gwASwFCr8iVMi1cKHCAoOWxvFxYUJX7e64Fa3RtWuA6Bmzwt7wFi5CuRWVWyEvQPL2ud4PjtYJc/L3iaFRF0PLIMH/fux3Ztvd7/AifJcX5X54XNSXuB3ar+60k9ZwkZAwlHk9ovaO3KPYzFmMZ7A9MNOVq7DxDGzeYjB6H1n2HaTpDlKOqzClCYvFbXKRUurShJJs78J2RrE9YTGeMb4/YavYZ0vss1nBRcJWBTfmeqyz4mpZnsWjoHg/nIEO0U9aub+aO3kWuXEspgWDySbZ3gZvlM/wZnGTt4rr3Ff7POA2D8pvMp1+kzy/C8BgsMNo9Cw6M7/hbxXXGcspbxTP8Nz+22R7D5lP92FahejX41lU4UyrfsZtvsUZ61TB4md+5mcA+LN/9s+22n/+53+ev/bX/hoAr7/+OtJJrN3d3eWv//W/zu3bt7l69Srf8z3fw2//9m/zp//0nz7Ua0s5MlWhksx88e5Q7Na1qAFDeBNNp1ZJUKpyNqqOcNUZ1kogqo5zOBQKKJKOc+G7FSYRZ3llKJtTkYrSSdquoAIHMJaEQvluhj9WhW07TihUPfid1BVUNDBRf27VZxgKieqEOrUgw233y8sGlkWCkCOEGCEO+4NyCjrP+8HVOp1KpeWF64hGcShIuMjhT3Bx7ofHTW6HPDRInr8skEjSZlBVUZCJnA1xQDkqKEeFyX8bpSZUI9tBZk+TptfqKUkasABQakKZ3av3Z3QAo5QyM8U9NmYHZsTuasBWgWxPoh26dRkU74cz1rKHjav6C/Zpv6ryhgpVVzxLZgP2yi121TZ75Zh3y21mfIsDdplOv8n+/h+1wEKpmRnZXmyyW17ngRqzq7bZVds8OUuReYoqqhxgmxuxym3wgcJWjTqFMStCOvVQqFX60pe+1Fr/qZ/6KX7qp37q2K8txNDkNIg0HAqVlO1B80KuBTjuRTskymxbEgqVtp0LWcgOXJQiaZWdtaFQCMwcs5x4gJFUywYyknpMilLLlaFQfWFQZlvZgY1VCdxuKJQLFX7YUygUyg+J6uZSuKFQ3tw6UknWdi5qp8qEQtlY3NVof/o6z/vBVyw1+2jLBz8r27Zs20XRRbofHmeFchWspNOZl8IMnjoQBUOxYCgW1e95CenAFNNINiDdRMoxSbJDmu60HAshUpSakSQ7yPQqKtk0RTYy83tvineY85v/f5QZtLX6BwZ0gNYo25cBLuL9cA4K/d1Y4FgV5WA7+bqsSikrRJGQ5CkP9YiH6gpTPWKmBTlT5sVd5vPb5LmZA9W9MDLtoyfJmXKgRjzUY6Z6xFPV+VRh8nxbI2/bZfvQXJdhh+KUBsFbpkf/buyRib0UKDkHMQ87FdbB0CXIqrxpYZ2KaqrzMBq4QOnmKbwSdU5FKxSqoMmzsK6GAxdu4va8goneUCiSGjbqZG4nFMomb6cVVIQqQ7nVoCBcEcqst8vMhkKf1oUK61rULo9UnbwKu3/HkXCBwi8va90KPxTKhwuRQp3sd3E6VBdBqzqYF71T+rjJBQar0PexzMWI31/UulrVUffLlzduv+nkNKBip3ZFqvr8dXx7dfyy16CBiqioCyUVhkKlJRpl/qmirlrmViuz7fV+yLoqqKgeXtewsAwQ3MTsc9alBQvzpHreDX+S86rWrwcYaUWdFiL8UCjb4VXa5AGgqjwLVTsT2g6Wp0Q3PKpIariQyrRm5J2qULmuktqsayGqkCR/kLzKnQiFQYV+kK3WqQpl91s3v0IKFYSKPtfCD4WqQ6A6g+BZwKA9DwGFm7hdwYWtHgIpomfQwMdVfaDQ98Q7FIITdXbqcyFcrcqLid9dVEh+ToLWRbeN5m+nxHR6ChIGSpjOT/XE1pa7NCVfZ2htpuq/vLrdTqjcPPktlHniW52vIKkfmCkHJjQKfR5B41GPj9bJXXAlEgeszQNU208aiIKUgRlgMh2TJGMGg536HkuScd1uq6+l4mFVCGdR9ZdUFYEhaCVnu3KdjAugSwsWpjMpEHKEblWCGpqk7RBguBWIrENhO7SppB6ZW5VViVRRJ27XT94LacJ6bG6F04mWVZtZNldp4QIAQatKVO1eaNk4FoEwKL8iVGiAPPCTttshUSGgcLf15VdIoRwnwll2HIo+18Ju64Q5pd7n7k6ypxJUlajdVIUatmq0C9F+Gva4a1Vc/qpE4Kizl+tYrONIXPQci6iLoyBM6AIlVN2ZV0gKnbLQKXM9INcDruQmBtyMB1Ully4emupPxV2SZAzQSt4uirsUxV2TuG3HmKrGkZLV+XI9YK4HLHRKqWX9LNdChX3S23ftUVFrSRf9+RTLAEM6g+jJpO6f6FRTZiVbcp+x3K9LM7+rNhnKHUajmyg1qx07O17MKLvOkDEjMWAsp6bimphQZgVlVkKWmWvpGyHcvebOeyzP3Mm4tGAhxBAhclPb2oUKUdX/rTulSQMYda6Fl8ydthO4SSsvQjWJ225IVAcowABHlXtBITtw4SZxr8qz8MOgLGRYJSue6PQNkrdOfkWvU1FBg0rb4U6rXAud6vZn7ZeX9d2KJDCgjXBucOFa8TZxO41g4egoVaGiHi31VY+K3+njK5vjYOdum7tPa6qhoqDQgoVOKXTKQz3mobrCtdmAZDaA6RwmCzi4A8NrMHuHRZXfVpaTVvJ2Udxlkb8JB+/A/B5M92GyQEw1yWyAmGc8VFc40BvMdcaCFEVRTdX11GElTYfpUR23IuoMZXMSoAKHHqhYNniclUirQeqG5mFoJmEzpdjM2Rjtc2Nxl6eSXa6n93k3f5qCHL35Emm600re3hjeYovrjLnG08l9rif3uZ6YYx9u5uiRagYDtoPircop6gOMM9IlBosUIZT50awn2/GsErqTogmFkonTiXWenLu5Fq2wnDZI2CpRVHkXHaCQVXhUQRAu7PgVPlzUYVBVnkXiOhjVcdA4GavUV2rWrC8fdbvXqXCrPvnLK1yL3uRs97twcy4CENE8OegmbTdTBAsrP6wp1OFcVRUqdlLPVstKx4a0zNG4CGNYRF1suXHfJUU9zXXGVI2YqCvsqm3kwZDBZMhsMkHvLeDhHLK3YDBGAXNdmETtehyLCWVxF6ZvmNG3p2/BXg6TBenEnGtXbfNQj5moTWY6Y64yCvIaLkqKToy6VXQuog4tFzb6Ot++s+H2J2VmChCM5gYsxnMW2zOeObjD8+m32FNjHqgxurgJQJZtssieNQPkMWLEtoEKmfCewR2eSe9wK7lDuTVlMTbnZJTAIDXFEerojDUqXQYB4/TvkUsOFrJ6Yj0zroVN4talWfYBwzobdW5FINfCuhZ1u/u0XiAL2YREOeBBFR61Dlz0hUE1b64BDJtnAQ0ghErOLis1C92B8nzYcCtBWaiw7gS1O6OCyz5gWNeiAw6d5G3aVaISh9gtRPjVoZyk7QYqRsTc7X6tyrXw94lQcXbqC0Fzwc/9jvqqQdntzX6LM7j6qEdFShVIWbSSSZUqnM58zoIZUzViqkfsqTH31BPcKZ/i2u6Mxf0ZB6OHphMk3zEnXUzQ+S7FYMt0vFRpRinOd41bMX0D7j6EuzPEfcVwd4Nsb8Tr5Q73yh0mapMDNeJAjyh5l7K6Fuum+EmwUVFry4UJK1VCkjahQ+7cfWjrjlgtM0g3Id2CzQmMUxY7E2aTfband/hg+cfMySiRjMRNbhfPM9UHLJgBkJAxYsyN9F1upW/zgcGf8NLgj3h243X2r01Y7Mxge9PcV4Mt81rSKVzTek/2mp3JvldfLnCcgpNxicEiqcDCxNiXatYkcbshUPYLql2LQFiOP76F61qkuoYL4XSi/ZAowCxDtV51rAEtFbLO+qcTBuW6Fy1oqB7Cu3kWQAs2zPbuH04IKOyxy0beDkFFuwJUX7vnVki15HMl/Pl33ArPhWqFQbWnqK7WeeJ9UQdXu8xa5RTZ9tA+61aDit9hlJUbIlU7FVXHvdQ5hcgrxyLnQD/BvtrkgRpzr3yCO+U1diZ7DO/PKEYLFqNZddZ3TP5EvguDsXngA2aU4nwXZndgN4e7M7g7Y3R3m+H9K9zNr3GnvMY99QQTtclEbTLXJQU5JeY6msTwNlT0uRhRUSsVAg13myrBPpyt+xzVg850w3T6N+7BuICdIbPZhHQ24MXpN+u+2KaYsS0n7KkxM52htGQo5mwn97ie3Oc96Tt8OPsjPjj4Y2bXJsyuTWAnMwNPWrCQWfMQ1V6Lvcb6eotmbttVADJOMTTq0va4jFOxaEretayrnhwLXZqn4kqHO7l+rkVVBYAlQOGHRAlkBzRUqhBKt5yLYI5F5V6ESs3WoVGVluVZHDXHwg9/ogUKPcutKlFNmdlgmJMfhtbaRhgoAjkWrlPR5Fgc9S8pKqRVZU+jjq5lDlJU1EnJuBTUUAHUQGGnspxQpiMWzFgwY6YXPCjHbMsxd8RTvFE8w4Y44AN3D9BSM2WPxWwCswK2cxjvmzCOtPrbzUuT6L2Xw26OuLtgdHeLjTtbqN0d3ihv8Ub5DLvlNu+qbSZqkwXmCa+Fi6KYGDdFNa5FyLmIbkbUUmAI7l+ATqr8i3J5AreNfkk2Tad/+BRsFzAr0YViX+0C8OLtgq39fW4l7/BWeYN75Q5zbUA7FQU7co9byR2eTd/mheE3Obj+kOmtBxTXNTw5gu3MnDvbqeDCidaw7xGacTXcNv+zOCNdYrBIEUK3nlrrwNPtDmCIxPxBdZwK+l2LAFDUT+ShHRLlORUCWfPDUucCOrBR73dI9eVZhCpBrYIKPxyq36Fot3XdihUukf+9SVsByncwum5FBIuwDjvAmrs9dnLPVv4YFiEtqxgVFQXLE7jdpG2lCspyZqa0CYXKmTJRT/Buuc1Q5Lwlr7MhZ2zOZ9y68xYA8zxhnk9NzsW4GjjPB4vJgmQvYXjfOBX6/hN8s3iWN4tneKe8xrulGbX4QGtyphQV2BRq6pWsbYdvRUUdShYc6kHkHAjxw4rcPAs7T6pQKJWbjv9mDjtm6ALFjKl6gEpLnr674JkHd3i7uM5DfYWp3gBgSM6W3Od6cpd0/JD9yqlYXC8MVOwMYTyuoGLcrYhZX6sTBqW8uetcrKMTAJBLDxZurL32HQpbcrYTDoXnUpR0oMLLtdCU4cpQsDIkysKFXV8JF9ABjE6Y1BKFkrahv+xsJ1HbA4aWc+GUnG0BhltedhlApD2AEQqDCjgYjVPhhkHZv4UoV6tCZEIhOaEE4NiRPVmtM2p2X8J9VNRRZDvnQjROgHUsimKXRZohSUkx83fVNoOyYCCazvxUj/iOt95kMBky2NugGM8pNnPKbG5y6pTJQZR5ymCyzWAyZHj/CvsHBireKJ7h9eIW3y6e5F65w7vlNjPukTNlwax2K8py1nIqfMcihkFFLVXIxbBtNuSp7pAnbRfDDYeCJk93MIZybo67WoLchVRSpjP2x7vk2zOyvQlPTnZ5ejZAFuZ4lZaorGQxnjEdz5k/uW/Cn65tGqjY2YLRDeNYpFvGHbFRGva6QxDhg0a9bxFO6D5hXWKwSIC2Y9GqDgVht6Ju040F5gx+0p5Tuw9A3Yl2XQsb+uQ7GG5IVA0XznoHLuxy/QbbbSVJJ0G7T6HxLA4DFV13Ynk4FNX76roVgQl63KHleRVuGBTVO2o7FhEsDqPDjswddXI6yhgVUVFHkR8O1cqvKGdIaeaLZIoUKQtmJEyZqIyEHQaiqB8y5HpArjOu797l6cl9is28Aoui/r/NgkU6zdDTDW6X13irvM4b5S3eKm5wx4GKOfvkTGuwcN0K66b441lYRfciaqV8wLDrPkj4sBFyLXRpwpTseQDkA9N32UxZbM5ZTHdJJmacFlmY328tNSorKDZz4+5tb5rQp53MOBWjG00IVLrZ5FeE3ApouxX+ew2tn1J41KUFC9OxxHtq7YRD9SVv94ZD+R1gHej8dnMtbOiT72C4IVFG3fUWXEDXvbBtBNqXyB8cD5pqUM3yMqgIg4QLEH0VoZYnwxP+rHsgIpTI3XUq7HIEC1/HCYWKOnsdduTtVeeKerzlh0MBlWthBvCyjsVikZIkI4o0Y84EAIkEtY0snqzHtpjqDXbVNk+V17lR3mO82Gdrb8KmmJFW/7fkOmOqRzysytXaRO3bxTXeVdt8u3iSd8ttJnrOAXvMmRiw0FMWi12KYlLlWPTnVvjvMSpqpSww2HAoHXIAAq6FrURpe9L1AHaZKQ07vGdyjbYHMC0oZyVlrsC6alJAmsBoCzYT2BzAOG1yKoZPGaiwidu2CAIEQp/m4fCtcxiR+xKDRRcqWuFQS92KJNDJrU7a6fg2LkYo18KMzN11MKAJiQKa/VrvoIGLUkvjKAjag+NZ98HLIWhXiep2IkLVoOz6ulDRdiJ63IpK7nLXoehxLuy2vmpQ9RfttLdgwv07iGDha9mT8WXjW8BqAIlaT+t+ficdChW/s8dX/qB4bpvrWCiVUpYpUs5YLHZNhcUkRSCRVddhV+2w4EkUkqkacaBG3Jc73FNPsCX22ZAzhuT1/y+lTgxY6DETdYV3lcmleLfcNiVsyx2m+qAFFQXm9ctyQllOaseiM5hfDIOKWle1O1GCwvQt3Kf+km4St+taWNUgMWz3pmVVWCYZwuAhbDyE+cKMMF9UE1CH22eyGqtiq8mnSKtlW2I2GTav2QEfLxzKvsfDhkGdEIRcWrCwCbv2B7T+Ie0Lp7HboBsO5YME9DxdJ+haCNV0vkPJ26jG3XCTuY0c5wKCoVEtwAAKkg5MuNshDBRmPZCojX1f7bZunsXy5fWStv12wmFQgVyLcJnZGAoVdXEVO/hR5ynTGQcpU8+1MMnbQqQUxaRdBKX6D8mOhF2qMXN1nUliysNuyBnfLp9kQ8wYypwBTbhUoVMWOnUG2jPH7KkxD9WAOQ+ZM6mnnCl5cZ+i6LoVLmD478mdRz3mOnRlqAo2LEioeXcf93Q+XNhqlcmmcS2yHVNmeWMKZW4Sve3fZj2WWuVGDLbMMemmKWObbDbb7GvVYUxFN7dCzduv4Y5n4b4/d34KujXMfWAAACAASURBVNRgAWYkug5cQNM5tZ+tTKo/Jucvxg17sut97UtcC9epsM6EhQkLHY0UQjXX4CZ0Ky0NMOgmp8K6F1Y+ZPhaNfK2hQpXvvPQCXuC+pgaIOr9A2FQrc/XLnufuV8NypULgs5yX34F2JybqKioqCjftbC5FnabnSxclKUJgRIihQEIKdE0gFGQsyg3majrjOWUvQoqhiInQeFWLLNgMdcZE7XJVI3IOSBnt4EJOxX3OyFQNnnbza2IbkXUseSXlQ3lWvghUW41KTcsSqRQVutJZjr6ZQUVIVDx4cIOuiezKnomBBWVG6HyNky4oHEOSdtWlxgskrrEqPv0uvXUG7rOhRsaZTvhnbAnt81pD6hO6FbNuoUJUVWRsi6FUBZcvBApTAfdhwuzQ/NaPmT0qa8qlAsVfSFQzfvqz61wl8NuRSAMyi5b+RDiOhVApyqU3a0TAlV970vG9XhcdZQcC6s4WN7Zap2wp74RuEMVvGKORZSVDxkWKKwKp7+e51VHflCgkm1KCxVVKdpcbzItM1KeICFhKCuwQKGqntuici0KFtX4FA/rcTJsonauJ1V+x24NFiYUqr8ilL12dx71COikHvr1PYHvO78bDlVXWXJyLVzXogy4FmTA3HT8XbiAJgyqzCApQW22HQb/+lrh+Vl73R+vwl6PyumEQHXCog7hVpygg3FpwcIo9OS6yrOANkyUtGGjlWehvc6vFw5lFQiHsu7DsqpQLnQYdUOiLIS4cGHzLuwgeW4cqy+/YlQIKqx8qFjWZt9PO0TKgYmQXDDDWfbboT+/opNj0Q2BqjeLFBE7UrVCY1GsOz5FzKk4Py377JdBYvy+okJa5lrYdZhVy2kLMGq4SHdQ1ajcdqyLlIyEjISUqbI5GRIoUSg089rlKMlrMLHHF3pWwUTjVPhQ4eZY2GuNMPGI6LSiB457XlXSyrWACgYwnf1OtaicGi5aofZJAyc2L0JnYahwr93ChPtefKhQ8zY0WMCwroUPGOfgVsAlBgvzg1kG2ipZZ6Le6MAGedPmJx2j+4EC6rlferYvBMp3LcBxLmiHIS2DC6ADGCGFSs1aqPBdieYanE657170QEbr+v1qUPW5nM8xNLefad8Php/ETQOPPlBGNVqWgO0/yQ49BY9wcXYKjSXiblu2b58rEb+/KCt/wDwXLpSaASNgRlGAlO1OvO3gl+mYIhnXUGHHu7BJ3sIbulijKhixQGLmhbbjZjQwYcOfimLSyavoC4GKgHFBdRHDkX3Xwg+JchO5y7x9rI2eIAP/59QHDFE9qF7HVfFL4Nq5BQTrVISgwgcP9144w1G5L3Wvq6/0qA487QbazoULGEvDdWivq7ZTAe1wqBZMqKSBDkduIjceZNh9befAwoELGNBABhAMjwpBhX+93dKygVwL6ECGXQ5BSvO5eYBh2911aIc++e6FlZNfEQIJ0xYdC1+hDqsPGD6E+PtHnbzWgYl1nIi+7ab9bJ9gRV18hcrP2uRu61wUBSRJGyyUmiHlhDIds5AjEmHgwkwyCBYlRQMYOq8dib55yKnoG8Mi6gLpIsJEn/oGzlNQhzy14KJyK8CAhyjbrgOEoyvsef02/3Vb86ILDxYqXJAIuSJn7FbApQaLrmPRUqhkqTu3y9I5hz9+hdted67tPuFwqBZMOA5GCCTM+cL5FkK1nxxb98KqL9fCrRblQ4UPD33ycy3ctjCAePkVzQUsdyxW/Si5ORcQgIvoWLgy33fSWl/mWIQ6uP4x8en3yWtV/oRdXzU6d0gxtyLKlw8UbpUopWbVNuNc2H0sXEg5qsBiRFlOkHJUTf2usZ8c3k7InrXa+lyKODDeBddRgOKoEHLcp+0+UPiuBfTDhfYefOrE/BerCzpFZyDczwy9B9dtcF2KPsCwDkZfCNQZuhVwqcGC1o9aa94XEuU6F26YVKsDTLsdL1RKVeDh/f+9KhzK3a+RAYjQefrgAtpjWFj55WdDUNG6hk6IU+NgNCcJV4bylzsKAUZoDmGnIgCFLkxAKIk7dqgOO85BqBMaIeL8dBKf/bIQqajHV+F8C7cE7QytnTxFXSClAQwLFkqN6v9zk2QUhAr7WhYM/JG+Q8vufhEqHgGtCwgn5WaEQoeOqr6QKAjDRZ0T4bkVtviP72Ase9162a/o5IU42VKydU7FMaDilHRpwaKdY9EfJtMc0EOSrvoSuJfI5ll0nAhvH2iSuJfvI5bCBYQHxGu/jfB2360IQYe/7zKHo5VfYV64+3n1VNNa27FY8p36SdxRba0KhVo28nYMizpb+e7QURLv3XPFUKgoX26+BdAZ3wKoy8/adnuMlLNqML1RVZ428EAPP8SqCwy+M2GrU0WoeAS0Dij05kseAzL6wooO05FuVYZaAy5coNCFgQ0bDmXdCutgkDfnlj3v0w1XCgFCCDCCORU9ULHsfZ+CHt9elx/7FpKtDBXc5i4741pUcxv+47sRoTyLZnt7vW5zQqRCORnmEtYfwdc9tz2ne42rFNwnUHLWe+HlbX6exRG0LM8iqtFRwmhihaGzU9934boNPgyGRub294u6mFr1e3WWneZQWBTQqhZlOvipl/Rtw55mrTAoKxdY7Dma1wg7EqGSshEqLqjWeQi4Tltfxzsk23nug4lQPsMyHQYuZDWv4YE2TAQdDJp9Q6/dmhf9wOCGRYX2CX0WZxQCZXUm/+v8i3/xL3jhhRcYjUZ85CMf4Xd+53eW7v/v/t2/46WXXmI4HPLSSy/xK7/yK0d63VAo1JFZap1PKhQuVak/kVl31kPJ0n3nc0OOVoU4hKAieH1LSsWuAx6H1tJQKCePwr1J3R+gvpA3u/mCVYc6r/shFKdv526b224VOsbfJ+pk1OcUuXAXyoXxv69l57lIOq/74bx02Kp1/v6n/VsW6rTbjr4/hoRJsG7yI2wFp6KYtAa2c5f9qSwnrfyK0FgV9hr6ru8y6ZG7H5ZBRegBrtsmk/YEVQd9jSl4bNJ9zXUeIlv1dcb9Eq6qbLeVeVWlyVZqyqE4MCNul3MzV/NqoLxps4+qBs9T1bF239LZbtvrEbVXQIWfwH2GIVBWpw4Wv/zLv8zf+lt/i5/4iZ/gf/yP/8EP/MAP8IM/+IO8/vrrwf2/8pWv8JnPfIbPfvaz/P7v/z6f/exn+ct/+S/z3//7fz+xa2qPwO3E6/vjW1iF8gHs8iGfsC8LL1p97OpjlpWYPOw5W3ATgI1Q4nbw2O7FHP4vb51QtUdA53k/9A2y5j/97gu3WXVs1OnJB79Q+No638VFc50u4v8Pp6FVUBCCh3X3Pw31wYWfF+HmRLRHx56sNRmwmNVzFyia8z8+4U+P3P2wCircZTdX0k4tUBiayd132WRHuQ6Bhvua/jUcRvUI1w5I1EAQgIkyN2BgQULlUB40oFF6+1iIKA6q7QcNbFgoWQYZPmisCxWnDBtCa30Kj6AbvfLKK3zv934vP/MzP1O3ffjDH+aHfuiHePXVVzv7f+Yzn2Fvb4//9J/+U9325/7cn+OJJ57gl37pl1a+3t7eHlevXuXu3f+X8VhQlrvVj9guSk0oCjPXxV71xVVUuXhoviQ7LyqyLA6g0JCXkCsoVDMvdHi9WhZFgiwkQonOslCiWpcI266ESdaul9ttQN1ml638JO9lnULoh4LeMrN+W6rqdZUqkBqVlvU2lZZ1u041pAJSaeZZ4qxLyNx2uy4hrYa2Tzcg2TTLyUa3Ld0iScZIOSZJdkgSM7frabrDZKK4evUqDx48YHt7e+Xf0WnprO8HaO6Jd7//RbbTblUoV757sWxANquL1FG9rAqFOi0rRbuqfVIuuPo7//uxvh/OQv3lr4+nUKf6NDra/rXadSnDznBfm69lo2X7DoW/f2j9pPQ43w9f/y/vZ+vKITre6+ZLhPIL/BChvmP6FOo8+w4DdHMX+s7ha9l7cK/dvX53tGx/ux/iZc/h/x37Sdv1sjdqd2t7T07FMaHi4X7Jhz59tP8jTrVHkOc5X/3qV/nUpz7Vav/Upz7Ff/tv/y14zFe+8pXO/p/+9Kd795/P5+zt7bWmI0n2/IG39gmE6pyATiO86CihKqcS5nRUXcK+6lncD7D8nrhoYTBRj68uwv1wWgrlGLhtUqbBKUlG9dS3T+h8odc8CbmhSO66dRHcZGvXwfCXl01+iJXvUIRe/zLqkbkflj3573MI3DAn60rIrD1PMmca9k/S2Td0nrpypONi+NcWWnele578186F414Ew6ECbkXIsbDr1rVwj3HDo9wKUK5LcUpQcVydavft7t27lGXJjRs3Wu03btzg9u3bwWNu3759qP1fffVVrl69Wk/PPffcyVx8VNQJ6yzuB4j3RNSjoct4Pyzr7Ltw4Ic72fEfVrXZikwhyOi7hpNQyDHwQ6T8hGsXHPz2ULL2MqAIXcNl0yN/P4TGBeuEPCVdmJCJAQY3HEpmS6ZhM9XAEYILDzDsdYWus099cNEHGDYcSlUlYF3QcMOogpPdr6iOK1cDxQWECjij58JCeCNLa91pO+r+P/7jP86DBw/q6Y033jjaRa5Tnkvp9vyEFKrydFwdJQb+NK7jyLrED9ZP836A5fdEDFuKumg6z/vhJLUKKFxgcMEhtB5q9493IcN/Tf96TkJ9nf0+yHBdDXcK7RM617LXvcy60PfDKqfCz6NwgcKCgd2eDNsgkWyYebrRdi9SGwZt1zfCsOFCRggw+tyLw8LFMsBwIaAeuM7Jx1g6Oe6Fe/wqoAiFRy17D2egUy0vce3aNZIk6dDznTt3OpRtdfPmzUPtPxwOGQ6HS6/Dj908a/n5D6d9/lCS7nFCYEQ9Orh70iMkYD/mOov7Ada7JyAMGX35Ff5I2xFQzlahqk+hffqOXXffs9RFux+OqnXzEEJVCkO5Cr5CVZH88q22HKxS7W3+fich99yhdqvjlNF9nEDC6sLfD+tABXjVnQLA4ToXftXHpR3+rOkgS7o5Bm7HOkm7eQlWEtMukmabuxySu5+/rpxrstdT51CU3WNWqZMLcsx8kctWFSrLMj7ykY/wG7/xG6323/iN3+ATn/hE8JiPf/zjnf1//dd/vXf/o6j1o2VJE9p/qO6X4ToU/vIh3QsLAUdxB9Y55jCdi1XndBPFsUnkre3t99JOJhf951b68I7EOYweedI67/vBh8tQHs6qcrPLjo06PbkJ2KFys+581Xkuynd23vfDSSjkUoTCnazr4OZQpOm4KjSxepLS7u/mYITCp8IQcxrVo/ochtD20HTY8112Xej74ahQYZ0Kmzfhhjm5bclm27GwroV1K6xjYbe5Dod1K+qiLlW7dSk6FaW80KhV79FVKPfCdzBaLkbRhEGtM9lQKDvZkKiQQxFaD13vOejUi/t//vOf57Of/Szf933fx8c//nH+5b/8l7z++uv86I/+KAA//MM/zHve85664sHf/Jt/k09+8pP843/8j/mLf/Ev8qu/+qv85m/+Jl/+8pcP/druj1TzY3XEH611/i+uQ6W6m/o72aKz7laE6lPTme+Wney/vKZDIpRslY9tuRJKIJCd8rKd/U5KSgMiHGpmy71JKnLPmjb7OxD4nrsJfxejM3We94PvRrjhcn5bn2Phh9hdhCffl02hik/+OCJHHSCvWb8YgH6e98NxFQo7CiVX2w5/X1voXH0Jy24egxDdweTMNVDve9ruhXuNvo7jWDyuupD3w3Ggog6LGrLStVhVKSrkWLhP83VJPThdOTdw4Y6G7bsXR3EurFwnwq6716y8cxzmv0n/WPf8feshneND2FMHi8985jPcu3ePf/AP/gFvv/023/Vd38Wv/dqv8fzzzwPw+uuvI51hPT/xiU/wb//tv+Xv/t2/y9/7e3+P97///fzyL/8yr7zyysle2CrSg4oU+7a5y7rTKRZKdsDAf7Lf5wB02jwnILT/uh28EFy4sLAOOAT3r0KjhBLoUJhUyNmpPzfRfJ52fR25Pyycf8jbOjrP+8F870kHHvwSs9DtrPaVpV13xPeo9dU3sN0y8Fv1fbnnuUi6sP8/rFAfVPguQZK0HQV33TgOYbiwcoGhLGdI2R6czgWMspy1jpXybOEidO1Rh9Mjcz+sCxWJAxRJRjvfwgOM0Pn65D/B9+FBJFUytHUCoB4t29Vx4cL/PPzj+kDjMOdep/2w+5yyTn0ci7OWrcn87W//gTOORXssi7KcQPGwPVZFaxyLeTNqYpE3Y1XkpTNuhT+GhTuOhUYUAlFIM1ZFz7gVskigbl8+hkVo/AoLFn4nogx0KpKeMJjQeBZ23AoAlZbVvBqTIjCWhUqrtmocC5WqznJ33ArZtGUyPB+k/WNXuG3pFrJnHIs03SFJzDgWOztPnXud8vPQqnEs1gELXxEszlbrjmOxznchhWJ3oXniy6891vfDUbUMKrrVm0YtoLDhUO0k7v7B7tyqSe5gdG51JXfdr8xkj7XncudRXT3O90NwHIuQW+GHD4WgIgQRrmvhAod/jmWvDe2QdWjnV7QGi7PJ005FJj8fw92/de5jdM4POwjfOjpqfsYxdJxxLE7dsThPhUKhtI1ds2oNOtIzJHrLkaDdDt39Ak/d27kK4UHulg2M558nBBUhoPC3JV7Hsde1AJC6brdtJkTKxhQ2LoVZN9uEEvVyUP5n5IdAtUKhnGoLqgRZ0smB0WUn1O2ihkJdFPU93V41OF5fSFTU6WpdB8ld9/drf3fn/1TrUdcyqPBBwp3bfAl/v75kaBcgLFjYUq5lOUOItHYrhFjtXJylaxH1CGtVB7kFGEugwkJECDBCIVDrvLa7j3UroAEKEcibBRMaxXy1c7GuaxFSn2tx1ONP65hT1CUGi4KlITWBzmlrbpdDidt+0nYoGdmFg0qdUKfWaNr9HTQ/32IdqChp/pgTpxPhAkYILoBDhkK1AcIPpaohIwRdrVCowHzVzeLlWoTyaeJ/oGEdFghiNaizUx/UuWGM/bkT4fW+tqjDKVTVKQQVIZAIzRNSJCkCiUQinBhSLRQKhU7GKArK1LgSRTGp51KauRApSjWAEeEi6lQUClnyw5/6oMIHjJVVoAiHG/W5KLrKxXRzMVpAgSnlKoe04KLO23AqPLnnPK5Os9N/wYDC6hKDBS072HYydQgo/HJeXux+KIei016vh3In2g6FCxKhSkp+CFR7exsqXKBwYcJVCDJKLYNw4V6TdShcajJOBi0I8fMszAWK/nyNDmA47e46dF0K17moL6oMO1N2sy68k0atI78qVAx/OhutU+bXz5VYNwQqfm9Hl+8oLIMKHyAGg526ClQqRiRkpGRIUlIyBJKk+u9YINHV71VJYaCimhcyp8zGFHqGlCbE10CFAQxXfXDhvp8IF1Fry+/Qh6DCB4l6IDxnOZRbAeEHva78BGm73Fkvu0DhAoMPF3V+RNGc44J22Gtd8Ou7tGBhfjD9gWN6QqCgS7i2LehYsBwwcGDCK9nq72Pm3ZCn4Lnql2tDhQ8Upe4CRlJZg3bfhDIIF6A6MNB1JZz93KRtqaukdd0Oq/r/2nvbGEmSs1r4ZGRWVnV1dU3PTHu+vOOd8frucl9kCe9arMEXbF+Erw0SFhaIFfxBMivzYyVbAiRbCM3aMraMbGOEsGVkydjCSCBz/RdYEK/F1fq+Xi0Gedew3k+zs+PZ2Z6ZnurqqqzM+Hh/REZmZFRkVlV/TPd0P0eqzszIrKzIqo6qOHme8zwyAKS03jeLUFQIm5MZyhiu6uCSREyTC/rhnMa88fl19VBocnr74MvcZbcbzBMK5dtPWBy+tK4+pcIQiVZrVRML1kWEDlroIEKMEDFaKFUL/bA+L0hIQyiQgiOFQIoMCcIgRhjHyIQOoXJJhYEhF/b3IBEKwkw0he+4+yphTY464ZIK026fR3lu6FZC1MU0ebBDqOw+2AhhEYqJJhlBVIZJBVGeXcp6HrOfg4NFMg5KP+bAoSUWGtN5s5V959us+4w7JiOUmeD6fADu/uLB4AuDajJk62P8+20CUkcqfGTChr0/DERJRiwOYZMLA9trUW2rkglAlj6MglSVhCSQDAoOMbPJhPS0m8/C56/wqE6uQlXsJo9FBbcjTIYIyP5intTThPlRlxa2TqkwCkUUaVIRBz200EGMbrE0xCJCC22WogVeSbIhVIgMbUxkDI4MGRJwJMiQIMUIGWKw0GSX2gDn/p9z48MAKCSKsE3MCoGyt12CYWpWuCqFSyiEqTRtZXPy+RXqjOFmf+AQBcTT1yMm1jV5wuDnIRRN+3fLwH0HkQkbh5ZYKCc8pphsekOhHJLh/kMXhMFah7NeAx95qC6nQ578pKNKKuoIRV04lIFWKnLVIicYRr0AyjuZLpEwIVG2t8ImEzbRMM9X1nVodQPV9xKYJhiu/8Jcjk0wQqDI5GDIhjnMm/+dY7FE0oQ6daIpVa3vOMLuYFZWKHq/9w6zQqBM9iebXBhSEcdraKGDNnqI0S0eHfTQYRl6bAudIEU7SBEFHK0gN2wrBgEGriJMVIyR7GCkOhjJLlKMECIGwxABGIKAAS1/35XiYCyCUpHV/2pIFIFQwaxJsV1crpicRyWBMEXwbKXCRypsQiHTvBhciiIrpxuS7no3Kq8ndJvbL2CaXKj8WNtbISxVxFUttoM7lBDsFg4xsZg28FYrbovqP08jofCpFWr6GFlVJuBVIPzpY13vhYFpk4rVqhQ2meANxCKCcEKhzJcCquRComLmBjzeCmfbzQhlSAdMaJQvHEqqMgTMJRrSMnArXsqV9mfkrLufeVWpOtoDHSjrWNjbvnSzrp8CwFQbZYW6PagzzbvVt+1297nu+QjbQ32V7Sqp0GqFJhWdnFC00UMbPXTQxwrL0GfX0WMj9NgIXZZgiSVoBylCCISBhFAMmWohQ4Sx7GAkOxjKLgayh1uyhy2pw6mMPyMIGIJY989OL8tY+Ztn0tLa10CqBWEmfKZpO5NTpbp1NN1mh0UB5e+2IRJ8BIg85b9Z56OSbBgYZcJNO99a0etKlETDRy5MKBSL9bnDWJMaOzwK0PMNFuo5yU4zRB1RHGpioZTHzGurE/Z65clGvfDcWS+2UUMuyjAoH3kw63pZeiua6li4pGIeQmGbuo287iMdBcEwHCK/JEMubNhhUnYIlPFaFKTDY+KuZIey37+pR+BsA7WVt41aka+7+durpv1mZekooE598N359qkRvn0U8rQzzHr/6tL/zvO+NytJ9EM5D+rUCrPPfhhPhfFVGHXCEIol9HEi3EQ/HOI4G6AfDnEivIWVYIgVtoVukCDOyYVAiFTFGKkONuUyNmQft+QKemKEJZlgQ/RxQ/SLLFIsN3yr1mrx3acJDy/Ig10rg1QLwo7gqhUumTCqhd0GVEmFIRDZJpBu6Npi6QaQjnXNMFMjTCqABfoRMyAOgbitCUW8mqscKdDqlf3zkYtA6D6ZG5WGUJi+C8t7QUR7Rzi0xEJPKOFMLu1wJ0/ok902NfHNTzs1EUax9KkV+jk1akVNFqhZpMIQCpsozFPDwiAM5DTJUJb3wiIXcPwWJiTKrmsRFGRhWqkonmdCprzvnedhH9vks3A/P0x7aohYTGPRiWkTySBsH021QnzH1aWb9Z3DPY5I4PZRp1YYf0UY9iqKRRz08pCnPjrooxcs42R4EyfDDZwMN7AW3cRpto5T4TpW2QCrbIBuoJULQH9nG2KxIfvYkH38SJzGengcXZ6gGySIghO4zleLfklILQRHSeXmiiEXJiSKVAtCLeYJg2pSKyppZR2DtU0q+KYOd5pc12Risg6MtoBhBoy4fpiixAameG4nAroJ0BsByxtA+yTQOal//yMBYCXvq0MuwrZ+bePHUEL30TV1+7wWpFoshENMLOC9c107IXXb6ia8tWFQfrXCHxrlHuMPiTKkwg59cklFXWao5jfGWg887QFmkouCNFjGbqNU2P4KW9ko0tHa6oQ5vY9owA2HcghG0alyv8/ArdeJWNhYdIJJE9Lbh3kUjO2cgz7DncGnVpg6FWFoeStYadA2fgpDKs5E6zgVXseF6DJOhes4F17DUnsTWW8CGXOMYpPsIgDjDMeSFk6OXsN4soJVNsCPxGm0of0YIlcrFD8GBVmmpg37UIqD8yHCsAMpkyl1RV8PqRaEGairHVGnVvjCouznFkrFuCQUyXVgMAIGKbCRAsMMwVAiTCKwtFXML2QkIToZZDcB+jHQF/nDmr/FZl6wAm/hvQqRqFEt5vVaENmoxaElFjqm3gmLKR4NhMINg6pRJ7REV27P462oVyemt21SYYc+1RGKWVmhKqgjE3bbLHJhSAFn+X9RrlTwEIhKr4XxV2gyIjFVLM/33k4RDfjVCjHJpc2SbPjqlpBiUcU86Wbn9VjUnY+wO2h6b5tqWcxSLMhrMRtuGJTdbkhGudSqRRStVg3aefjT66IbOBXewN2tV3AhuowL0WUcW1rH5MQWNnsTZP0EIuaQMdchH1KBpRHCpIXWsI14sIV7bmxiNRlgKRgjDlIAQAgJriJI0QdHWqSmFaEmOaZid5NqQSDMBbeonZdEWEQDqIZASctTkW4AyavA6EeaTKwnwI0JwhsB4o1lxIMOolGMMGkVNyhVJMG7KbJegsnqGNnqEFjrAIkA1l6rmrFN32xDt4EhEnZGK1u1ILKwYxxiYlFTGK+iSiwQBjVLwfB5K2rCnhYlFbZKMY+Be/abY63b3ooFyAVcf4UTElUQCqNcoFQyKibuKW+Fz2NREw4FTKkZPlJhwuIIGr64/bpY/nmyQBGp2DvU1Z7wGbptMjFLsaDPbH64YVBmWRKK8mHqUxhyscIyHA8HOBlu4Gx0rSAVK8euYnxihGRtiKw/AfotoNMC4k5BLGQqIBOBbHAL2cYEosNxfF0g3NSfc6piSMUwUh1kKkIquxBI0UIHIkghoh6kTCqqhX0dhlxQOBQBwOwwKPdY8/9UIRgOFDkF+QAAIABJREFU0QCsG4Fp6amYXNdKhSEV18ZorbfRvdpHvNHFaOsErsrjGMrl4mZqNxjj5OAmXhfdQOvEFpLREAnfhOIy92DcLMkEM49w+roMkTBL37UtmnqWUMGhJRZSJlBKOYqFmJqIzh8GhZqlqiETrJCz60KjbFJhjvORCpdQzJsNyhTAc8ERIjLmTU/40xTZ8JALo0IwriVKW8WwCQV4qBXFSIJx3UfJVKlacAWwGrLGZZ6doSYcSqaADAEZW2pG+XlLmYCxBEp1iFhY8GUamtdETNhfzOuLIY/F7qLJtF2GQ/UQ5bUptGl7GcfDazgeDnAqvIEL0WW8Kfohlo69hq1zt5CsDaFORcBqT4d2dCMdQ24mMqnUseYbKbL+BKKzARFz9K8A92xqYjFBjLHqYCJjbMmTRQG9DEnRL/MIgjIkyhAJCociLIypSteecCgXiuvfa2GFQA1GBalYutzD0tU++PU1fJ/fjZf4XViXx7Epl5GpCCEk2kGK14XXcS68hnuu/RCvG/4IYRpixAeQLNGhS+y6zhDF4mqqW7vfijthUDXhUEV2KFE+nwjGXDi0xELfpVbT9SvqzNsy1W3CDYNCdaJrL4v9TX4KhoCzKSJhHzMPqWjyWej26oTBPj70ZYBxC30r/ZwwEFX1ooZcLGLedhUM1KoWNqlwCQcw07wtS9ViWrlY4F/nkKPpbvasys40Md17NNUGaTJvz1Ik6LPbOeyq23Y9C8Y6uhp2Tixa6KDLEiyzEVbDQeGn6C7fwHhtqEnFmRZwqgOc6ADLazrDTdQtJzDZJtDbALo3gE4IycYYs02EaYRjnOFsbuq+xVZwi/XQYX2kVhraklCUYVtSluSI1AlCI+r8FcB0tiegatQ2+2y1Qky0YsE3gST3VNyYoLXeRufaCibXT+N76X14hr8Rr2SncVP0MZA9ZCoCCyS6QYKT4RquRKexqZZxr1rCG64+D8UUtjobpbG7vVGmoZUpoGJPPy0iIc3S6rvKCQeNkW3h0BILXSBPFneui5zIhkTYhMK0i7QkDjZ54Nbk1vZWcIWA+0Kc6sOhmCEZPJwZ/mSTinmN2z6vRVG7wsrVbAiHgKNq5ERCvx5DGISIlND51SEQIwOTAOPauG2UCBmJwm8RSAVwlisVoqpgSAbGlU4RzWT5vlbIBPzqRWjiNONpguGEQ02nnSUsAkone/Axj1eGsD3U+Svs/WaybsKgGKIiFKqFDnrsJo4xnVr2XHgNZ8NXMTmxVSUVZ44By+eB7jmd3aa1oic2cgJkQ313N34ZaL8MAFAYI0mGYGmIc8mr2Ij6eFWuYSB7uClHGMkVhDmxiBBDhJ2KF8SsC0HfiYQF4PorbFRSzzqZoADrJm5appYdZsAgRXgjwNK1FYjXXofvpffhu+mP46XsHC5nZ3BLBkgwgMAEARhiLKPHT+GMWNe1XdQS2pspTl0T4N0Uk85Eq369TZ16lo90zQspqr4Kkw3KJhKVvi+gSpCK4cUhJhYcSqVQKqmGQRkSURsS1TCxneGtKEmDJzuUQySCQq0IK6QiVXGtSmETCp9pe5bPYkq9sFQJm2AUxxmlwjouBQpyUVEunDAoe33KyG18FzZZY8wJgWLlvijfJ/IvCDcESk4AEeqYSpkbuitqRQIpXYmGMMs30VQIjyawe4emFLR1Xpim5/rORZgPvjSzvgdjmlgYchEHAkt54TuTTjbojpH1E/BVrsOfTnQ0qehdAJbPI4xPIQxXEQQRpEwgxAZk+lo58TnxApAKZIMh0mGClRtbWBX63OvB8bwORh+Riou+mHS4QkRTZIl8FoRtwc2yZJZNHg05yX+n84xQIw4MMsSDLto3lvEMvwvP87vxUnYOP8zOYV3ewhZuYIIhOFIwRGihg0SdwCQ7BQaJKOBYYzexemuAeDBCOhxDmXS1nbF+LZHqG5Ju/+1wKKTlsnIMEYbt4tASC+2xkPXZoGSq/+maTNvcUSucu+uljyIsyUROIEyb7bEo1jmbIhWpimtViu16LHwwx0V5YTxTjMmEQFUUDDsMqoZcGI+FyQbFONM3AkxmKOOxABAwqfczhUAqBDyEgtAqhVErbNXCEAybeDR5LIyaIVOtUiGyPBZELFw01aIwk0+K1d9fNIWg+bJCzV+fhH40F4FPwXDJRQj9YIjQDlK0gxTdQBOLk+wmeG+CtD/WforVNtA7rYnF8nnES/ei1TozRSyycBWZHRqVXM09F2NkvQlWx3kNjLxydztIwVSUEws2lWLW3jZEwqTlJhDmhq1e+IhGJRtU/jDm7UQUtSpagw4mW8fwEr8LL/MzuJydwXW5iZu4jC15DUlyGZwPEQQR4ngNafsCOFKE2QW0gxQvhXfhVLiON25cR2u1g3Q1AxKeV/DOs1AVN45tZcUhEu51EHaEQ0ssAJGHQ/Ey9ElOyn90n8eCS4tIeNSKKY+FJg6LeCy2Syp8hMINiSqv3D9AfGpFYeT2eCw4qmFQM8mF7bGwTNtGrQhMKlrOELDSi+FNP2urFjahEwIImz0W/uxQRCwWQZNCQaTi9qEp89M8xxN2DuOp8KFQLMC03wwMISK0ggydIEWHTbAUjLHEEow6GUQnA7ptHbLROQm0TyKMz6HVOoMoOoMoWssn/Qk47+UkYwjR3tAejO460I0gOmOIToaVYIhuMEY7mKDNUrQCXhCcICcWdl8JhD1DnSdDWXMsmeaF7yTCpIVoFONVeRzX5XHcFH3ckgG2cANb8hqGw/+cIhYAELYjjLCK68I8juPePDUt0klesTt/LTPPm7e/bhVuu50UjLlxiL9pOJSaQMmk6qswuZRFaq1PMGXSNmqF8VQ4yzL0iU0rFDwE40xnQbJCnlxSkapWhUC427tdx8L2WpjjS59FWFEx6siEObat0mlyAQBRlWi44U82yWAABMvfY+Qp48yyologb8uXIpcuVVx+tiK/G2HWWQzFOoXHRtGEa2EQmTg4mDcUirD3sA3cRZtFLAJo5YhBoo0U7SADWpmuURHn1YPjJSBaAeJVRNEqomiteBhiAehlGK5CxKvafxG3gXgLKlaQMUeLccRBhnaQIYR+zQCtsh+WalEHbeom1YKwhyhUA67nWKko6rRsymUMZA8D0cMEQyQYIEkuI0kuYzR6qVLoMYp6iOM1TIIhhvIshrKLTbUMkbYRpmFOKmQZ3dBU4A4glWKPcGiJhZ5MOr4K27Tt3u32ZnzyKxcBt3wUvFm1cAlGIIPSU5GTiIlqzTRtL1LDwhcWFVlqRcVrUeOzKBSMnHi07ZAoBUyCuCAXoRJogRembdfADWiOYIdEVYzcdvpZU8eCK52CyqdamC8pl2A4vhmdu12nXSRisTgo/OnggfwRBw8VVSD/xgshEQYSYaBv0CimdM0fFmjPWBAVcelB0EEQVDM4AWZbP/Sd1Dgv/hUALC8axiSi/CYQgwQLZNEHH7Rxe6/fEQIB/jv8UhTzKTMfEgiRqQgZIghMIKCLOnI+hJRJPpfjYKwDIfQ2D1NkKoJEGfGhs26aTJRq+nWbfr7qTOmu34iUi7lwaImFvlNtxdjZ5EJMqmqFSTFrwqBstcJeFseUyoTxVRgC4aoWLsGwlYoJ4gqBcLfn8VfUhUO5ENaoCgNZei3yQRJCFEqGrWAYMjFRqGSIipFiEsSIlNBVYCXQ4jrTU0EirIxQrreiQjK4KbaXT5qMMlEhGKiqFoFFKgzByJUKBBFsE7f+cqJJsQ0iCgcX8xQh3M5nR5/53qDO7GzfPCpuNgH5zREONz22ncGuyGYIky7duhmWn8Ocj+f6ssy/4xWIfBIOAHyT8MLsnSd4YUqT4kCiBQ6WhxKahAiFf8lkXmN5amdECHNV0ERXcOu8xdJ93ToQWdhVHGJiMbGktxSN6WZdAlGXbpYrizCwkkw0pJu1CUYdqXAzQe12ulkDk252OgxqOhtUXbpZo3CkKrYyR8UlubCUC1utMN4Kuy1g+v0MmA6X0mFPdgiUCYnKP4PIWtqqBWt7zPn6s9WqRQeY09x+VDBv9iAKhbr9mKdQ4XZIAn2GuwMfkVCQlYe5m2q+xxnXDxNfrvP6jwExghAbEGKjMpHSN0OGEEI/tBl1VMao579FSkRIVSsnFzpUzvTBB1/IE4VBEfYcRUG6SCt2EYOKJFSks6d1gzHaLEWMY4jQQRyvIY7X8srxQzAWFW1x0EOEDpYCnbBghW2hxThGMdc3HiOW33ysKdZno4lQ+PYRAZkLe/ZL89JLL+EDH/gALl68iKWlJdxzzz24dOkS0jRtfN473/lOBEFQeTz00EMLv35ZuyKtTjqnlAt4wp5gKRfVEKmSMFTViDrVokitmv8A2KQiVXFBKlLVKrYniDFRrUqb+YEq2619KqwcV/ewjzfPEflrT/IfpwmsY3JiY+6I6ee0KqFb5kfNnCuTUUG2YLwldrpdXpIuZr1nhqxNvecVtchuV7lPJvfK+NaVgJJJnnI42d4/8i5hv8eDjXnCadyJK4XgHAywQHo/G9/n47YdpM/wII2HWWiajBuVQTrEQoIhUxEmqoWx7CCRbbA0RJAynbVmnOp8/ukGOF9Hll2tffDsanEsRhxIhDa+JvrcqYqRyLYOJ1FRpS8Skur53AG4k8ZDLcyk2518m/oRJpwvCoCYgXcy8G5apGM+zgboBkvoYhXL8V1YXn5T8eh2y8cS+uhiFcfDAfrhEKtsAN5NtYepE+nzh6FFZmrIRR1JmOXLIMzEnikW//mf/wkpJb70pS/hTW96E5566ik8/PDD2Nrawmc+85nG5z788MP4+Mc/XmwvLS0t3gE7C4Gp+mgrFyYUqk6t8IRCFeqDEwLVZOC2SYVNIm53KJSN0BpolVCo3HfhUyrcNnMe47MwoVZ2WBSAvIAeqxTS84VCMWhZtAiJMmpFEQqVbxfrEogcr4UbCiVigMX53b/9VSz2fTxYmOfO9W6E3hB2H4vUrrDVDfe4/SYZB2k8zIMyNWu1zSyV4lCB1PHh4EjUEiYqxkgtYVMtY0P2cXJ4C/Ggg8lgoqsOL13RmZ6CCBMAUg7B+XqRClaIDWTZVWD8I/0Y/QgY6MJireESolGM67KPTbmMiYqLh8Rm0Q8Tn15HKohsHAzcaeNBew/ifN2aiEsBhJFuswvnsfy3OYyBOAQ6IVRXIetNcLx1A+ezH+E1cRLXxSrS7AwUJKJ2jHH7TB51ECEOeljGCazgFE6FE5yJ1nEhuoyz4atI8/TLOttapCvYmyr2dUX7inWLENWRDVIqFsKeEYv3vOc9eM973lNsv/GNb8QzzzyDL37xizMHSrfbxZkzZ3bWAVutqAuFMiE3lYc/FMomFfZddptM+EKhbKXCRyp8qWZTpQfsRLUAAL5QKJtIzBsKBdRlhJKV1LKLhkIZn8Uk90tNkQuUxm1fKJTJDsU401miinSzdiiU5bMwIVFcVb0W5rNVMco6FylUEALobOe/aNew7+OBcGSx3UJ6e4k7dTy4fgj7IQIOCQ6BFBN5DBMVYyw72JB9bMg+zgw7aA3bSAcJ1EYKdBKg9XJhEs3am8iiFU0sZKJDpSbrwNZlYPgSsJECGxOwQYDWsAO2VZ57pDqYyBipCsGRQkL3pam/NqkggrG/uKPGgxIAwtLzw9BsjjZVu8M2EHZ1ZrPuBOi1kPYTTFbHuJBexobsYyB7kGD4r+wcYnQxxgCS8bzydhddrOIEUzjfuoy7W1dwIbqMk53XMOgnEH0BdDtAJwTCpTzZQVyfBhcoCYb7/09EYke4rR6LW7du4cSJEzOP+/rXv46//Mu/xOnTp/He974Xly5dwsrKivfYyWSCyWRSbA8GA70iJ4CSllphp5atUys8hm0udRYoJ3QnqDFr220+pcJVLbabFaqu4vasQnmRNWAK5cGjVJh2V63wHWfUCrtORggxk1yY+EfJlM4OBYCxPEsUHNM2pI6d5BLgOiuKJhsCCCalUmHM3CwvnmepFgcNezEegIYxsQDI6Hu4cCeEth2k8WBXoTZKhataFGFQMk8QwTg4UnCkyDDBUHZxS/ZwQ6zimljDKh/gxI0xRCww7gzy77XXtH8izetUtFb0jRA50RWK0w1g62Xg5hi4NgauJeisH0P7Rhc/4qfwqlzDTXkMA9HDUHaRIYHI+yDz7Do6k8584VBEMA4ODtJ4KIiDd3Lu3PE3Va0Ngqic5Edd/X/eGwOrMbITQyTJJtZGV/DmTT2vWWIJltkIG6KPW/L14CoCg0SXJVgNb+ZKxSv47/Fz+LH4eWyd2kSyNsyLTkZAp6NTM0ddTWbsquBuRlC3/4uCCIgXt41YPP/88/jTP/1TfPazn2087jd+4zdw8eJFnDlzBk899RQ++tGP4t///d/x2GOPeY//1Kc+hY997GPTO0QGSEutsGtYSFGN5a/E71s+iyK+35CHmhSzM0iFIQ51oVDzFsgDMKVc6LbZBfJs8gCUmaGmKnA7hm6TdjZGWhi1K+pFbtyeKKAdoFBbinUPuRBMle8jdAhUseShJyRK6i+HohK3ExIVWrUsKqFQYU4wUqgDlhVqr8YD0DAmHPjIg91G5OLgYtZn5+Kgpw4+CONhXkjJwZj+UhMiAWN68i4iXkzqMyQYyhUMZRcD2cOr4qSuwL1xE51YQHQypBjB5PRHP9ETIhO+oURepTgBNiZarbg2Rnu9i/aNZYjBMbwq13BNnMQtqUnFWHWQ4VZJKlRaUSeML8SQDMLBxYEYDyacydcmBRA4k3M7PMrAVgvCGGj19P/10nWgx4ETHSTpEGES4TSAN29qYrHCtnBDHMOW7CKziEWfDXFXdBX3RD/Eva0XMDpzC+NTm1AnGNBv6ar28aoeR4ViUTPNrWRZM9fRUFCPMDcCpZSafViJRx99dOY/5RNPPIG3vvWtxfaVK1fwjne8A+94xzvw5S9/eaEOPvnkk3jrW9+KJ598Evfff//Ufh/7Pn/+PJ757m9iZYkD2SbAN/Xdn2xTZ9bgY11WPpX6Sz2V+bYoC6zk2TuClCFMQwQ8nFoyzsDSaCapMMTBXZ/HW+G2AdPZoKbi4Ws0SWZlCrHvWOpUs3rb5EQ3GaTMvgg63Kluu41Ub+frYSB04aa8vcU4ZCQg80wQIhZQ+baMee1SF5MKtSGrE2rVohOW7THLYyrzuyGtFS2DmjsWrR4QrWBzHOK+/+dzuHXrFvr9/kL/g004aOMBqB8TN//Hf0M/Kn8omiaYsyo8Ew4e5iUMLJDYyBSO/59nj/R4mAWjTpiCeEWVbWZSX3bQaq2i1VotMtZ0wjUsoY8lrGIZJ3AqnOB10Q2cb13Fxegy/nvrWVyILkOc2kCyNkSyNoTqh3pS1I3095lJtZ1KbdYeZAg2JDrrPXTWe8D6CbzE78L3s/+GH2avxyv8FF7la3hNhBhhA1u4oYuM8WtI03Wk6To4HyLLNnQNAD600tlWicZRJxxHeTw88w/3YmXZIRI2MTAhTcaEHbZL3wRrl4qE2Wf8DUWtsFyZm1wHRleA0TVgXatwwdUMnfUeulf7CDZW8LI4h+tiFRuyX8xzukGCU+E6ToXX0V9+DcnaEOMzt8DXJHBmCVjrAMeOA0tn86r2a3ouYMg6kJMJK8ELH5WRLGJcejbNcXKGqnGIScjmlsB9/+v5bY2JhRWLRx55ZGbWgQsXLhTrV65cwbve9S781E/9FP78z/980ZfD/fffj1arhWeffdY7UNrtNtrt9vQTzT+Fr+K2N+xJVlWKPATKTi3r81m4pm0fqXCViToFY94wqCIFKEzbbKMtC2S1loXSE0eWZzAROemYMmnnfgtXrbDDn0xNCygUz2mrFAKiaK8oF3boEwDFwtqlVi1spUKVS6NacFkNfXIqcOt9ezNBPmjjAWgYEw5mTUKJVNxZmFfB0G1784N4J4+HJmiVAkV4VMVbkYcbcT6ECPvIkCBCghQjDOQxtEWKDdbHZZzBUjAGANzzmgRLQ7A0RDpMwAcJVAf6ZglD+RuUAK1BB/Ggg/aNZQQbK3ie34WX+F24yl+Hm6KvQ0ZEDymuI8UIHAk40koYlGviNktSL/YWh3U8lMVoLfWiaHfCoexl1NW/zZ2T+rjV1wCppwjjeAAZc8T9BOc3hrg4ijHhS4Wfc4klkEsT8N4EwxNbSFdHEKcAnFgCTnSAXh5mFa/qqvaG4FT6bIVBFdlCLZXCLppsP89eEmZiYWKxtraGtbW1uY595ZVX8K53vQsPPPAAvvKVr4CxxScqTz/9NLIsw9mzZxd7oszycKiciRqvhciVCUMmCpUil6TzZZAGhY+CpWHpr7AUCtM+i1TYoU/brWMhFZsiElJNE4vayaCqqhQZdHVYQLcbomFIhj5nCyFkGS6VqxCGdAiEiIMMQulQKQGGNrKiT9UQKlTIBWQAgJe+CuhKE8LaLvwWReE8q/hNUTDP8lwEqZ9gyAkg9ibq744ZDwuCSMWdj/34DA/TeKjzWQB6Qh4EmlQEQQQhhgjDDjIxAAsjhBghRISRinFdrKIVcAjFwAKJsVrCWC3h7I1XsTZcR9abIOtNIDoZZGRq+eibWmHSQmvYRmvYxqvpaVwRp3GZn8VlfgZX+RpeEydwXaxijE1MMESKkfZZ5PUvTOViQyCaiAQRjN3HHTUejCm7Dj6fhfJN0h2yYY4P2/qYVs8yTQuA3dQRCd0Ik+4EkxNbSAZLiJKWTtEsA0gAm5EE76Y6tWxf6bCn1fzRXwE6p4H2SctfEVczUwHV0gOyhmgQdow981hcuXIF73znO/GGN7wBn/nMZ/Daa68V+0wGg1deeQU/93M/h6997Wv4yZ/8STz//PP4+te/jl/4hV/A2toavv/97+N3fud38Ja3vAVvf/vbF+uAnGiPhZtqttawXZdatmrWrjNvN5GKnZi3DaEwxY+AaWJhhz656oUNQx6Ktwi2alElGSWJkds3b9vwkYuiCmce0gVNJux2xRQU43pvXqG7IBLG3M1Zvi6A0PZWlOZtyP01q+77ePBgVigUkYvDiYNg3D6I42EWpOQIw5JguKoF50MwpkOkoiBGigghYgSK4bpYBZB72/L6FpsyT0ObbWD11gBoTRMLkbaxIfu4Lo/jmljDq+IkrojTuM5X8Zo4gXWxipEaV0gFV7l6UigWSaWvpv9UGO/g4MCOB+OpsP0W9t19BgB5FkYmqt4Lo1rYzw1zD0ZknyMGoms6pLkTAsMM2SpHlmb6Zq/5ujLh0J2WNmn3ck/FUl8TCptUuN6KWWqF7bcAUBTZnfXeELzYM2LxD//wD3juuefw3HPP4a677qrsM7aOLMvwzDPPYDQaAQDiOMY//dM/4U/+5E8wHA5x/vx5/OIv/iIuXbqEMFywDoFIAZ6U1Ur5KFcjPGllnXXXPxFwhjCNPJmgqqRipJbm8lbYZm0fwagjE02qBVDvrTAo5vMWiQA04eB5O4Ms1AybZBiCwRFqD4UTDmXUi8Lsna9X4JALY9rWndcKhl0pUzGFMP8XleD6SwZ59Vp9AfpHOBXW9lh/ofBRHgua6v+BPVIs5sW+jwcPiDhUcZjIlM+Eb5Z7GQo1Lw7ieGiCrV4AyKtjcwRBAiGiQrUQooMsixDGegIVQFfChlxFptaQqQgj2cFIdnBdHsdJcaooENZOs8K3ZpTskeoUBOQ1cRID2cO6WMWG6GulQk0wxqAgFilGyLINZNmGpVjwimpBaWYPHu608aA7lv8eF0RjUqROrqgWFZ+GCU1aKT0bJntTvAn0yiKQxVxNqvy3PSi9ld1Ip63tnNRhT3lGNX2uJb/HwyURJky+MJ6DwqB2CQubtw86BoMBjh07hmf+z//EStsybKdjPQE1Ju3CvG2FQ+UhUDr2NUKYLyshUAXZ0CbuJlJheyt8YVBuNqhMtSqEwkcmpvwVHtViFmwTtzFtM5TVe8OcYLBAlgSj0ibQDjLtr8gN28bMHQdZZd2Yt9tBNtXWYhwi5lCR1MbuWBRLEfOKiVvEAiqW+RcLK4rsVEzcpq0V6S+Z1oqWXcMuNpMW7vvJb+66Oe9OgBkTrnm7CXfKJHs3+3mnXPNuYMDFnpi37wSY8TAv6kzcQRAVJu4o6iEMe1Uzd7iKNnqI0UUHfXTQQzdYQp8NcTwcoMdG6LMhuixBl43RDcZFMgz7d2MklzCU3SJ97UD0cFP0i/An+5HyGxWzthBDcK4JhhAJmbZn4CiPh2f+/h5t3nYzQbleCUMITI0IM4l3zdvG2G0M3z4DtUmmY+Zp2VDfFMw28xvC1vSU5RW1TVKWsFv+zhuTts84DjieW+u1jYnbNm0bouFLSWvjkJON22revmPAR0DLhD+Ny0xPdSFQNqlwTdo15EKJCGPZqYQ8+cKgbLO2a9yeRSgq6zWmbXcyVBcOFVqEosz6UxILKE00pCEZKicZSqIVcEfBKP0VYV4gD9BGb3tdBMzkmcqvV7flF4JWCgjwqbSzYfGvybWZu6hvYaWZTT2eCx6UIVHcqrop9j/846DhMEykdzON6p3+XhD2FnpSrvNIGLheC86H5c4YQKjVVgWpU9GqHhLRxVCeQY+N0GMjtIMUXZbo79j8u9d85ycqxkTGGKsOhrKr1Q4lkOJmoVIUagW/gSzbAOfDPBRqaJGJqlpBpm3C3PCFQ5l2oHq3X06mn2/zFDPhZ20rw1QbiJb0PC1aqU7+zUS/IDUWabHVCR+JaSIVrlphm7YpDGrHOLzEQmb6H1VMqiFQqUMwjGJRhECFhWLRRC4WIRVN6Wa5iqYIRZZ/LFzppbBIBoDi2OJS5wyHMuFOAAozt2vilkp6SYZUbJpgKIZWkCEMwqkQqJnhUGWHC3Khq2pwMMZyvwUrSAWKkCgBxe1QKGiCYZMNFgBhWtaz4CEg97fyNmHvQcSAsBdwC+OZDFFmX2ngNuQChaIBACrUd/tETjA4UnDVxVgsYSB7aAcp2kFaEIvidcCQqQgTFecPgQzjIuTJZIBKMUJ6ir+tAAAdYElEQVQmBl5SYSsVbj0L+/oIhLnhVtk223b4k23kFqmfXABlATthEQw73as5P+BXSlzVxJzfVhps0jDlsbDaXFAY1LZxeImFGOWTytRSJqxHQSj8Zm1DInw1K1xSURcG1WTcNgTCkASbYBh1wlUxAHh9Fqbdhk0w7B+ros1SJArCkZONsCATmmSEqCcYUjFE4EVGKKNIuNmhbMVCfwnlHxNCQI4r5AIAgimzNS/N3Gn+Q2grFu464wBGpWLBD1XE355hv1WMpgrRdeqE6yHwna/uPL7XnKdv+/0++eD2D/CTrYNg3r5T4au+DaAIL+IcCMMyvEgpDhEmEK1VtIIuBFK00EGKEVroIFExQhUjRAsMSwjy720FWTw4JpDY0sZspOBIkJmHGhUhT4ZY2KTCNW27/SYQptBUGK9un4QmFDKdPh9rT5MRQy6CUJOPIMqVglgXvK2b1NvPs+tqmH32c4xSofJ+FUl8JtUQKGURD1IrdgWHl1gUNStkVa1wDdyprlcRFr6KaEqxsMmFTSq2o1iYsKfMIhKGYNQRCulRLIBpn4Xd5kPFW5GvF6Zty8gtXRN3Ti5cQmG2BRha4FOKhTF6VxAAkCjDoZBnkJJAxGWhVPgUCxMipUwK2qmsUCgzRtkhUSLWBjBCBfU1DvYPUwS5ZmLsm+A3XU/Tdc0iC1XTc/mcg0Yu3P41H0c/jougSbUw20BSbBvlwjxXKQ7VWoVkHBwpWjlBYIgQIQZDhACsIBYALGKhK2lzpDCVvQVSZGJQEAmfUmHUFFIrCLsOlygAjgGaA+79CxVOZ7O11YvA3HR0QqxcmHHoEoritZ3wJptUuKqFGwJln8deEhbC4SUWfJyHxrikQlQUi4BrX0WpSoRexSJMQ3AeF8RhO4qFUSUyFVUIRaaiuTwWQBkWBexQsUBp1AYAlnstwkAW2aEKpWIOxULm5EIqtrhikS+XONDKf/i8ikWqQ6XCVCezVea6mDX47VoXQJklStAXxFGBe7f+oBEAwp0Jt66FTS70RL78OTXKhZ2OVsoEPOzpehdhD2Gejja0SIWPWEhwyNyjIcAL8mAIhRv2ZGpX1JEKMmwTZmIe1cIlFybkyfx02+uARQhEqTYU+8Lquu/1bfj6ZpaGMBgiYSsVdrsvBKouLIqwEA4vsRBi2ldRZH8qFQuWRk4GqGmPhU0qRqrjJRdNioWtUhgSYS99HgsfmfCGQzUQCh9sj0UYWGFQ8HssbJIxW7FgaAV8YcWiegHjinLheiwAY+4GhFEuCo8FynWem7y5AoLR9N0TwqHFPKoHgbAT+IrmAVXlQilekIso6hUEQ2eSGhYZpRjrgDnEwtw0UflNHZssmKVNKOx9TUoFkQnCrqDOyG37LeqIRhACiKcVD8CvQjT1wV53FQgfkbDJxqwQqCOYCWq3cHiJRSqAVr60VQqr2rYhFaU6ERWKhU+pMKRiEXLBczJhfBQ+QuEqFr6QqHmzQs0bCsUCiSxXDUy4U4VM5PsNoQgDiSjgBaFggSYVZlsGTCsbilXW67JC2UqFC1u5MAik0DUrAIRM6grdqc61otwMUYZc6IvOCcZ4rn+bo4SmO/m3czK+qHfB9kzMOnYRtWLR94IIy9GDSyiMsOoqF7qYXgdKcTDGi+cx1ikIhUlXa6ev9b2erXqYdLEuiagjFHWkgggGYSaaVAuDohp3VO6XADCpKhRmH4tR1KpSYaleKJ77LGYoFXY/gDJ8qRLS5BAHl2A0kYojnF52N3F4iYVQgPL4KtJSqQinalOwQrGYRSpmkYtMtSqhThkiHQrVEALVRDCA5joWair9kg96wAYIilAkW7XwkYkyBErnVjfEw4Q92QpGKw+JktDhUXYGKG4IhJsVynxcLtHIlQvzL2qIBACofAmmqmZuwCEU0P4LQywJFTRNjG9X+JBrJPYZtH3EY940s/MQj3mOc/sz6zn7FX7l66P7PpJ5e2dwyYVPuQAAIRIwVj0uDDUx0EpFVBTXm4dYGJLgkgizbaeUJVJB2BVsJyQK0OSCmWWsJ/M2oZCizOSkzNzAIhlANVSq8voWmTD9cUmCIRFufQofqbCvi7ArOLzEIpWlx8KoFnkYVJCyiknbZ9w2pGKsljBRramlSy5sr4VRJmx1wpALm0AURCInD+62z19hCIQspPIsX84/WbDjeA0xYQgR5DHCvhCoae9FrkqgVDBMSFSl74FFNDBd2wIow6YAi4DAr1zYUKxkKNLUFTeXZip1Gv9FNvfbQ8DtuxvvTnR9ZuxZpuR5SYHv+EWucx4j+HbOu5toes+qS/oR3QlmKRem3agXprBeqVwkFTIxi1jY64ZA1BGKsk9EKgh7hEXJRYVARNXn2tmdilApAEibvRRm6SoOJtuTbd6eMmpbpML1VZBasWMcbmIRTXssTAYoo040kQqjPtikoiATDslwQ59slcKEPWUqKgzcRr2oIxgAijaVR9raJMImEva6nEEwmDX6DcEI8iApE+OrFANyouESilZhJGQVgmEUDBnkfguLVGjCwaZCowy4Ew4V2ZMeS7lQVnYoxhhUWvVdKJarU0zqrFCF9yIARDDPfw0hx17dcfedtykTU1Mq2VnnnpUxajdAxvCjC59yYQzd01mkAIBbx1VVCqNs+GAThDo1wiUWRCoIu4ZZ4Ul15EKJMtwpbOs2kVbN20W62fw33zV1175mTQhUHYHYCakgLIzDSywyMU0q0gBhEnmIRLNSMVKdQo2wM0DZJMOEPpmCRnYIlI9Q1IVDSTBwFeREQgAQlZzmAPJ9pbnPxizlQtYQCwCFgVCgJBlCsULNCIOSUBgVwyUY5lpMm0+9cBUKkymqyBiFeuUiiDnAFAJZJQrGd6EMKXGzQ3EiFotgrybLs9LHusftRCVwSUZTH7aLg5h2lnD7UEcuAFSK6JXHVMmEWRcCtYqFve6SCfsYN50skQrCrmGW36JJuQDKUCiXTDBHxbAVCx+ZmTJsW16LWYSieM6CpILIxsI4vMQilUCoLPO29lVU0sra3ooapcJHKlxyUadSNIVA2YTCkI1SmaiSCekQC3fpqhR15MIOgWIOqXBVC1ZpZ2CIoBSDUHHFZ2F8F24YlMkSJcDQ8qgXBgWZqMRkVkmGvkitXCgW+r0W+bpgCioVFrEQpdeCUEHThPh2eyyaitvVPcdgHq/DTq5l1nsxL1kiHE74fBZuOlrf8ULwKTJhKxd1NSfqlnWZn4hUEPYMC5EL4VcrgGmSMfN1Z/gszD7lEguPUdtdd6+PsDAOObEoFYswaRXkoW7dKBUumRjLjte0nch2RZGwiYTbVpduVigGAQGFrCAPIvcL2OTCEAy73aBu3QdDJASmFQtDKFzVQrfzfBkVKkamIm3ehkRLMfAgQgReWbeViin1IshDo2RYWcKkozVkA1rB6PIxOnKCpp9JxUymKEe5UFQgz8V+movdPvgM0U2hUO7z3Ncwx8yjKCwSblV3LYtcV905mtoIBxs2obC3Xe+FXQvDPt5gqnyP5zXcdSIUhNuCupCoOnIBlATDPsYmGIBHrchT1M+jWFSWfJpoFOseIuI7Z91rERbC4SUWmdCZoUxaWctP4a4zziqkIlVxpbq2LyOUCX2ayLhWpWgiFmW4UwYJPqVM+NSKOqViXmJhKxauemG2Jar51M2+QrWAdFQMHSbleisM2bCVClu9MKhLj1tmh0KhYERMABJop45Cw1SpYjCjXGTm4nKPBWXCYYEEC+YPCdur7EFuxqJ52+11d1I/63V85/dlSJrnXLP6Nuu4unPP2z4LvqxQu3VuQjNcb4UbHgVMG7x9IVC+89qoC3lqaiMQdowmcgGUpmyz7vNdVAhGCKBGrZhJLKz/cSk8RENUjyNScdtweIlFKgFIsCREmEaltyJpVQzbYRJNKRUumbAJhx36NFFxhUhMZAwJhomKCx+FSy64CiByImHUCZs4uNuur6IuHMocMws+87aZ3NcRCp9qYbbNusqvsRXocChT26LOZ6EfaUE4ijoXGBdLQBMMW8lYYiHAUVEuIgAi91xEQNEukOWKBQcE3QHeaUjQXmCntSO2k9XJXt9OhqjdPm4vnj87kxYpeHuFOvXCtLkhTgCfy7xd9zqz2giEXUWTmXse9cLeZ5bCkBFnQs+c16krYuerP9FEKHzbs9oJc+MQEwuBAOGUSdvNAlVHKurM24ZMcJdYGNM2GBLHvM1VVCgUMg95EoVKUVUr3G0AtSTD7DOYJ+XsPOZtc5ztt7BJRlhRLfRfo2SonEAZI3fhq/CoF4BVm4OhWNaZuPOOFV4Mn3IBaCO32ZYmJErSRMpFUxjOLH9DXb0Js69p3Q0fqru7Xrc9K3RokXoTddfue16TCjDr9ep8IbOux6es1PWrri9Ux2J/4At3cif+Zl8defCdb9F9BMKuYxFyAdQTDN/x9nnFHJP/JhVj1vFN5yVsG4eWWAQThjAIazI/NSsVbpvtpzChT2ZpCEVdKJRNKGSeqtWQB1udMPuaQqEATBEMAx+pMJN97/tjkQmz7SoXftWCQVpKRalacISIIMEhVJSvs0LF4AFHBo6W4miztExNG3DIIIWUrFjaPotukNTnx/YoF76fVwkBSMoK5cJ/J7s5C9O8z1lkvenu+jwKxayMUvNikWufpx/z7Jt1nnmuZdFz6CX9gN4uuIpF3b6dnJdAuO2YRS6A+QmGqbxtHzt3P+YgE/Ocl0jFruHQEoswDcGCCGUBvGalYiiXMVEtbKrelGk7y5UKo1D4QqB8PgsBUVEoXELhIxhNXgsAUyTDwCUWNulgHnLhC4MyyzpCMa9qEZo+qyjfcvwVEhX1wu5HqWSE6Do+C+cCvcqFrVboi9fVuackVAKBQLjNaCIZiz6fQNh3zFPjAmgmGAAqFbcXRV141Ky2RfYTFsKhJRYsjRCqFqKkBZZnf/IpFZtyuTEUaqLaSHJSwVWEZEYolCEUxpRtCIWtVtjqhB36JCsKhl+pKAiGk2rQXbdhDxn7x8yu+gr461jYpCIoSIVWJozfwvZemH1mnSGCVBGEiiv+igwcndxjIRVDm6UQ+dJsA3mdC8tnIYIQnOUF9mqUCxuKKUQANM+gLw8CgXAwQCSBcCjgkod5jnEn8juNztyuX4IIxZ7g8BKLLEIo65WKTbnsDXuy2yYqngp9stWJxCIbJuxJOITCViuaQqHqjNsSskIi5s1d3gSbXBjTYBBEkBbRCIJorlAoUwjPVirsdVOxW4JB5R4UW71oB6kmHFYolAzSgjQY30UF+b4QoqJcdBInFMqoFQBCpUDEYn4clJSn8/gk5u3rbvoz9rIGyEF57wkEAmFuzFIvzDGAv9iei1lZoWa9xm4dR1gYh5ZYhEmEUOoaFVHSKpSKTdWrEAgfwUhkuxL2NFFxQR5slcJeN2FPEhwc6RShsMOfmsiFgoRQ6RSJkJI3EgxgPgOgnX1EF2mqKhduVVj7wVBmhArAc5IRVVQMn2ohc+VCX1sErlrgQQSJdEq9aOc5rCVYhWTYagUACJlX687VDJdcFKFQ0Bmj9DRtsp1/pUOLeYzDNpqMv7NM2nXt80ygZ5mX667LJQezvAiLmLfrnte0z/e68xKYus9iHiM5mbcJBMJtwTzqhX2cwXZJxF4fS9gWDi2xYFkIJqIiFMooFYZUuATDJRU2obAN2oll1NZtWqUQSAsiURf+VEcuilAomRSkwRAJH8Ew677lLNhEAqiSiop6IS1CkZMMaZEMY84uXRaGSMjKuq1aKGupw6M6aLN0Wr0IylAok0GqY2QLU9cCY4R2jmxTVA+aXBgYgsFAWaFczGv6nfWcuuf6JtpN5/epB772uja7fZ6ieHX9qZt8+wiDe62z9jWds2l/3bnrzkHmbQKBsG+Yl2C4x+81iFTcFuyp3n7hwgUEQVB5fOQjH2l8jlIKjz76KM6dO4elpSW8853vxNNPP73wa5f1KkIga02pEy6p2JTLSGS7DIHKScVExkVI1Eh2iuVIdpAqBY4UGRJwpBBIK0v9SKb2V9ZVgkwMwPkGOB8WDyH0w2xn2UbRzvkGhCjbzNJ+ZNlG5eHuc1/HPl9dH+y2TA6L67Ovyb1Wva3fg2zqvciQyFaFyJnHOH+PzfuvfS7689Gf3RI21TKGchmj/DPUn6Umh6aqemg8NumcX3B7iP0cD7sNe9JfBx8ZqHueb/JtSImPbNQpC7Mm8nWqQ11fmhSaur77rmORInh1hKlu352KwzQeCISd4lCOB7sCNvXjyGDPFYuPf/zjePjhh4vtXq/XePwf/dEf4XOf+xz+4i/+Avfeey8+8YlP4Od//ufxzDPPYGVlZe7XjZIWQtWCSNsVUmGUik21XPFV2Cbtgkx4MkEZlYJjUqgQdWqFz2dhhzpJmRTKhFErXKViN8OgbNjqhFm66sVUKBSz1ztgLCnWgyAqwqKYFf4U5OFSdliUVmii4jipYmSqA8EYWopDMFaERokiJEo/BGNTZm4AU+vG0G0QBgdDsdiv8bBT1E2eF/E+zDP59pEI3+ttV7GYJwRplmrjvv6sEK9FFQvfueYNnbrTcKeOBwJhL3Box8OiCsZuvibhtmPPicXKygrOnDkz17FKKXz+85/H7//+7+P9738/AOCrX/0qTp8+jb/6q7/CBz/4wblfl2UhoEqlwiYS7rpLJtwsULZxm1vmbJtQ2ESillyotCAQQpRhT/a62dbvxzTBsNvL9212ZigDQx5cb4VZGvJg9rukwpCIKqlIEIYdyHy7Gg4VVUKgWLGMECG2vCUxlGxV0tG2g7TQ1EQedCVlvZkbAML8yyRUskxFy9SBiSvfr/Gwm1jUGzHvJHjeO/1NE/c6wlPnt5jHvD3PZH6vJvqHhUDU4TCMBwJht3Dox4M92d8LkkFk4kAgUErt2a3cCxcuYDKZIE1TnD9/Hr/6q7+K3/u930Mcx97jX3jhBdxzzz3413/9V7zlLW8p2t/3vvdhdXUVX/3qV6eeM5lMMJmUd6Zv3bqFN7zhDXjxwTchCnsYyi6GqqtDnZRWJ4aqi0QtYaTaSKQJfWoVBMOusG3WtZciLYiFMWlLiNw7YUiEmCIZSk1ywjCxiMXEIgwTS5XQ2wAc9UJUMkHVE4vmgRVYg3kq3WyhSIRFe0kqwny7U9nWykVYEI4wbIOxDoAIYdDK09Ga1LNhkYI2QIQIrWJfiDjf10IcBIgCjnaQoR2kaAcpokBgiSVogWOJTdAOUsRBig5LsRSMsRKM0AkS9IItdIMEPTbCUjBGj43QjhLcDDJc/H9fxsbGBo4dO9b4Hu0Vbsd4AOrHxA/f9kb0o/m+zJsm74uQhd3IkATMp4zM46vwqQv2+fciK9SiGaTmDeXaCQZc4O7/+8KRHg8EgoujPB6e/N8X0Vs+ADcyDpov44hiuCXxwPtf3NaY2FPF4kMf+hDuv/9+HD9+HN/5znfw0Y9+FC+++CK+/OUve4+/evUqAOD06dOV9tOnT+OHP/yh9zmf+tSn8LGPfWyq/eL/99wOe084jLh+/fq+/XDcjvEA1I+Ju//vCzvoPeEw4iiPBwLBxVEeDw+8/8Ud9J5wWLGdMbGwYvHoo4/O/JJ+4okn8Na3vnWq/W//9m/xK7/yK1hfX8fJkyen9j/++ON4+9vfjitXruDs2bNF+8MPP4yXX34Zf/d3fzf1HJd9b2xs4O6778Z//dd/7dsXxEHBYDDA+fPn8fLLL6Pf7+93d/YV5q7MzZs3sbq6umvnPWjjAaAxUQcaDyVoPNB4AGhMGNB4oPEA0HiwsZMxsbBi8cgjj+Chhx5qPObChQve9re97W0AgOeee847UExs4dWrVysD5dq1a1Os3KDdbqPdbk+1Hzt27Mj/Yxj0+316L3IwtrtS70EbDwCNiVmg8VCCxgP9HwA0JgxoPND/AEDjwcZ2xsTCxGJtbQ1ra2sLvxAAfPe73wWAyiCwcfHiRZw5cwaPPfZYETOYpim+9a1v4dOf/vS2XpNA2EvQeCAQStB4IBBK0HggHEXsmVPn29/+Nv74j/8Y//Zv/4YXX3wRf/M3f4MPfvCD+KVf+qWKce7HfuzH8M1vfhMAEAQBPvzhD+OTn/wkvvnNb+Kpp57Cb/7mb6Lb7eLXf/3X96qrBMKeg8YDgVCCxgOBUILGA+FQQe0RnnzySfXggw+qY8eOqU6no+677z516dIltbW1VTkOgPrKV75SbEsp1aVLl9SZM2dUu91WP/uzP6u+973vzf26SZKoS5cuqSRJdutS7ljQe1Fiv9+L/RoPSu3/tR8U0PtQYr/fCxoPBwP0Xmjs9/tA4+FggN6LEjt5L/Y03SyBQCAQCAQCgUA4GjgASYsJBAKBQCAQCATCnQ4iFgQCgUAgEAgEAmHHIGJBIBAIBAKBQCAQdgwiFgQCgUAgEAgEAmHHIGJBIBAIBAKBQCAQdoxDTywuXLiAIAgqj4985CP73a3bgi984Qu4ePEiOp0OHnjgAfzLv/zLfnfptuLRRx+d+uxNtdKjChoPR3c8ADQmXNB4oPFA46EEjQcaD7sxHhauvH0n4uMf/zgefvjhYrvX6+1jb24P/vqv/xof/vCH8YUvfAFvf/vb8aUvfQnvfe978f3vf79ScOew48d//Mfxj//4j8V2GIb72JuDARoPR3c8ADQmXNB4oPFA46EEjQcaDzsdD0eCWKysrBy5uxCf+9zn8IEPfAC/9Vu/BQD4/Oc/j7//+7/HF7/4RXzqU5/a597dPkRRdOQ++1mg8XB0xwNAY8IFjQcaD0ft828CjQcaDzv9/A99KBQAfPrTn8bJkyfxEz/xE/jDP/xDpGm6313aU6RpiieffBLvfve7K+3vfve78fjjj+9Tr/YHzz77LM6dO4eLFy/ioYcewgsvvLDfXdp30HjQOIrjAaAx4YLGgwaNBxoPAI0HAxoP2x8Ph16x+NCHPoT7778fx48fx3e+8x189KMfxYsvvogvf/nL+921PcP6+jqEEDh9+nSl/fTp07h69eo+9er248EHH8TXvvY13HvvvXj11VfxiU98Aj/90z+Np59+GidPntzv7u0LaDyUOGrjAaAx4YLGQwkaDzQeaDyUoPGwg/Gg7kBcunRJAWh8PPHEE97nfuMb31AA1Pr6+m3u9e3DK6+8ogCoxx9/vNL+iU98Qt1333371Kv9x3A4VKdPn1af/exn97sruwoaD82g8VCPwzgmaDw0g8ZDPWg8VEHjgcbDdsbDHalYPPLII3jooYcaj7lw4YK3/W1vexsA4Lnnnju0dyTW1tYQhuEU27527doUKz9KWF5expvf/GY8++yz+92VXQWNh2bQeKjHYRwTNB6aQeOhHjQeqqDxQONhO+PhjiQWa2trWFtb29Zzv/vd7wIAzp49u5tdOlCI4xgPPPAAHnvsMfzyL/9y0f7YY4/hfe973z72bH8xmUzwH//xH/iZn/mZ/e7KroLGQzNoPNTjMI4JGg/NoPFQDxoPVdB4oPGwnfEQPvroo4/uTZf2H9/+9rfxjW98A0tLSxiPx3jsscfwyCOP4F3vehd++7d/e7+7t6fo9/v4gz/4A7z+9a9Hp9PBJz/5SfzzP/8zvvKVr2B1dXW/u3db8Lu/+7tot9tQSuEHP/gBHnnkEfzgBz/Al770pSPzHtig8XC0xwNAY8IGjQcaDzQeStB4oPGwa+NhD8KyDgyefPJJ9eCDD6pjx46pTqej7rvvPnXp0iW1tbW13127LfizP/szdffdd6s4jtX999+vvvWtb+13l24rfu3Xfk2dPXtWtVotde7cOfX+979fPf300/vdrX0DjYejPR6UojFhg8YDjQcaDyVoPNB42K3xECil1N7xHwKBQCAQCAQCgXAUcCTqWBAIBAKBQCAQCIS9BRELAoFAIBAIBAKBsGMQsSAQCAQCgUAgEAg7BhELAoFAIBAIBAKBsGMQsSAQCAQCgUAgEAg7BhELAoFAIBAIBAKBsGMQsSAQCAQCgUAgEAg7BhELAoFAIBAIBAKBsGMQsSAQCAQCgUAgEAg7BhELAoFAIBAIBAKBsGMQsSAQCAQCgUAgEAg7xv8PMO8PCAtAhl4AAAAASUVORK5CYII="
},
"metadata": {}
},
{
"output_type": "execute_result",
"execution_count": 60,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 32 bytes\n allocs estimate: 1\n --------------\n minimum time: 28.571 ms (0.00% GC)\n median time: 28.971 ms (0.00% GC)\n mean time: 35.069 ms (0.00% GC)\n maximum time: 53.800 ms (0.00% GC)\n --------------\n samples: 143\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### 場合によってはforループに展開してしまう.\n\nforループへの展開はマクロを使うと短く書ける.\n\n配列 `a`, `b` について `sum(a+b)`, `mean(a+b)` はメモリを余計に消費して遅くなる. その場合にforループに展開するのが面倒ならば\n\n```Julia\nsum(a[i]+b[i] for i in eachindex(a))\nmean(a[i]+b[i] for i in eachindex(a))\n```\n\nと書くこともできる. このような単純なケースでは\n\n```Julia\nsum(a) + sum(b)\n```\n\nと `sum` を先に適用すれば速い. この方法は `+` を `*` に変えると適用できない."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 2N個の和をまとめて sum(a) で計算すると非常に速い\n\nN = 10^8\nsrand(2018)\na = rand(2N)\n@benchmark sum(a)",
"execution_count": 61,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 61,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 16 bytes\n allocs estimate: 1\n --------------\n minimum time: 113.655 ms (0.00% GC)\n median time: 117.746 ms (0.00% GC)\n mean time: 135.518 ms (0.00% GC)\n maximum time: 193.330 ms (0.00% GC)\n --------------\n samples: 38\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# sumの中に配列の和a+bを入れると遅くなり, 大量にメモリを消費する.\n\nN = 10^8\nsrand(2018)\na = rand(N)\nb = rand(N)\n@benchmark sum(a+b)",
"execution_count": 62,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 62,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 762.94 MiB\n allocs estimate: 3\n --------------\n minimum time: 478.879 ms (0.32% GC)\n median time: 493.014 ms (12.35% GC)\n mean time: 503.188 ms (11.83% GC)\n maximum time: 562.246 ms (14.69% GC)\n --------------\n samples: 10\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# a+b を a.+b に変えても効果無し\n\nN = 10^8\nsrand(2018)\na = rand(N)\nb = rand(N)\n@benchmark sum(a.+b)",
"execution_count": 63,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 63,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 762.94 MiB\n allocs estimate: 28\n --------------\n minimum time: 480.031 ms (0.48% GC)\n median time: 513.440 ms (12.09% GC)\n mean time: 512.765 ms (11.96% GC)\n maximum time: 559.151 ms (14.67% GC)\n --------------\n samples: 10\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# forループに展開すると速い\n\nfunction mysum(a,b)\n s = zero(eltype(a))\n for i in 1:endof(a)\n s += a[i] + b[i]\n end\n s\nend\n\nN = 10^8\nsrand(2018)\na = rand(N)\nb = rand(N)\n@benchmark mysum(a,b)",
"execution_count": 64,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 64,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 16 bytes\n allocs estimate: 1\n --------------\n minimum time: 131.565 ms (0.00% GC)\n median time: 134.102 ms (0.00% GC)\n mean time: 135.628 ms (0.00% GC)\n maximum time: 154.190 ms (0.00% GC)\n --------------\n samples: 37\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# forループはマクロにすると短く書ける\n\nmacro sum(init, i, iter, f)\n quote\n begin\n s = $(esc(init))\n for $(esc(i)) in $(esc(iter))\n s += $(esc(f))\n end\n s\n end\n end\nend\n\nfunction mysum_macro(a,b)\n @sum(zero(eltype(a)), i, 1:endof(a), a[i]+b[i])\nend\n\nN = 10^8\nsrand(2018)\na = rand(N)\nb = rand(N)\n@benchmark mysum_macro(a,b)",
"execution_count": 65,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 65,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 16 bytes\n allocs estimate: 1\n --------------\n minimum time: 132.860 ms (0.00% GC)\n median time: 160.666 ms (0.00% GC)\n mean time: 155.506 ms (0.00% GC)\n maximum time: 162.884 ms (0.00% GC)\n --------------\n samples: 33\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# @sum マクロがどのように展開されるか\n\n@macroexpand @sum(0, k, 1:10, k)",
"execution_count": 66,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 66,
"data": {
"text/plain": "quote # In[65], line 5:\n begin # In[65], line 6:\n #285#s = 0 # In[65], line 7:\n for k = 1:10 # In[65], line 8:\n #285#s += k\n end # In[65], line 10:\n #285#s\n end\nend"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# マクロで正しく計算されていることを確認\n\n@show @sum(0.0, i, 1:3, @sum(0, j, 1:2, 2.0^(i*j)))\n@show sum(2.0^(i*j) for i in 1:3 for j in 1:2);",
"execution_count": 67,
"outputs": [
{
"output_type": "stream",
"text": "@sum(0.0, i, 1:3, @sum(0, j, 1:2, 2.0 ^ (i * j))) = 98.0\nsum((2.0 ^ (i * j) for i = 1:3 for j = 1:2)) = 98.0\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# sum(i->a[i]+b[i], eachindex(a)) と書き換えると速くなる. \n# この方法は mean でも使用可能\n\nfunction mysum_sum_of_forin(a,b)\n sum(i->a[i]+b[i], eachindex(a))\nend\n\nN = 10^8\nsrand(2018)\na = rand(N)\nb = rand(N)\n@benchmark mysum_sum_of_forin(a,b)",
"execution_count": 68,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 68,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 80 bytes\n allocs estimate: 4\n --------------\n minimum time: 128.724 ms (0.00% GC)\n median time: 130.110 ms (0.00% GC)\n mean time: 130.315 ms (0.00% GC)\n maximum time: 132.122 ms (0.00% GC)\n --------------\n samples: 39\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# sum(a+b) を sum(a[i]+b[i] for i in eachindex(a)) に書き換えても速くなる.\n# この方法は mean でも使用可能\n\nfunction mysum_sum_of_f_itr(a,b)\n sum(a[i]+b[i] for i in eachindex(a))\nend\n\nN = 10^8\nsrand(2018)\na = rand(N)\nb = rand(N)\n@benchmark mysum_sum_of_f_itr(a,b)",
"execution_count": 69,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 69,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 112 bytes\n allocs estimate: 5\n --------------\n minimum time: 120.235 ms (0.00% GC)\n median time: 122.932 ms (0.00% GC)\n mean time: 123.084 ms (0.00% GC)\n maximum time: 136.259 ms (0.00% GC)\n --------------\n samples: 41\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 上と同様の趣旨\n\nfunction mysum_reduce(a,b)\n reduce(+, zero(eltype(a)), (a[i]+b[i] for i in eachindex(a)))\nend\n\nN = 10^8\nsrand(2018)\na = rand(N)\nb = rand(N)\n@benchmark mysum_reduce(a,b)",
"execution_count": 70,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 70,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 128 bytes\n allocs estimate: 6\n --------------\n minimum time: 120.272 ms (0.00% GC)\n median time: 121.734 ms (0.00% GC)\n mean time: 122.925 ms (0.00% GC)\n maximum time: 138.841 ms (0.00% GC)\n --------------\n samples: 41\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# 実は以下のように sum を先に取れば速い.\n\nfunction plus_sum(a,b)\n sum(a) + sum(b)\nend\n\nN = 10^8\nsrand(2018)\na = rand(N)\nb = rand(N)\n@benchmark plus_sum(a,b)",
"execution_count": 71,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 71,
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 48 bytes\n allocs estimate: 3\n --------------\n minimum time: 113.893 ms (0.00% GC)\n median time: 115.422 ms (0.00% GC)\n mean time: 115.549 ms (0.00% GC)\n maximum time: 117.655 ms (0.00% GC)\n --------------\n samples: 44\n evals/sample: 1"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### 具体例へのリンク"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "* <a href=\"http://nbviewer.jupyter.org/gist/genkuroki/5962b82f551fa2ed10ca22e5523864ba\">@view の使い方</a>\n\n* <a href=\"http://nbviewer.jupyter.org/gist/genkuroki/d7328478c1188f876052fce859e91b40\">FFTを用いた熱方程式やKdV方程式などを数値解法の in-place 版</a>"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"_draft": {
"nbviewer_url": "https://gist.github.com/1ac59bb3e03eac12945d7040d4f98246"
},
"gist": {
"id": "1ac59bb3e03eac12945d7040d4f98246",
"data": {
"description": "Julia言語で計算が遅くなった場合の解決法",
"public": true
}
},
"kernelspec": {
"name": "julia-0.6",
"display_name": "Julia 0.6.4",
"language": "julia"
},
"language_info": {
"file_extension": ".jl",
"name": "julia",
"mimetype": "application/julia",
"version": "0.6.4"
},
"toc": {
"nav_menu": {
"height": "381px",
"width": "252px"
},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": true,
"toc_position": {},
"toc_section_display": "block",
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment