Page MenuHomec4science

No OneTemporary

File Metadata

Created
Thu, Nov 21, 17:47
diff --git a/.gitignore b/.gitignore
index 878f29f..2f791cd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
*.html
*.bib*
-*.pdf
\ No newline at end of file
+paper.pdf
\ No newline at end of file
diff --git a/complexity.pdf b/complexity.pdf
new file mode 100644
index 0000000..de3db98
Binary files /dev/null and b/complexity.pdf differ
diff --git a/complexity.svg b/complexity.svg
deleted file mode 100644
index 5467a1f..0000000
--- a/complexity.svg
+++ /dev/null
@@ -1,1226 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Created with matplotlib (https://matplotlib.org/) -->
-<svg height="216pt" version="1.1" viewBox="0 0 288 216" width="288pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <defs>
- <style type="text/css">
-*{stroke-linecap:butt;stroke-linejoin:round;}
- </style>
- </defs>
- <g id="figure_1">
- <g id="patch_1">
- <path d="M 0 216
-L 288 216
-L 288 0
-L 0 0
-z
-" style="fill:none;"/>
- </g>
- <g id="axes_1">
- <g id="patch_2">
- <path d="M 58.441838 170.44
-L 272.52 170.44
-L 272.52 15.48
-L 58.441838 15.48
-z
-" style="fill:none;"/>
- </g>
- <g id="matplotlib.axis_1">
- <g id="xtick_1">
- <g id="line2d_1">
- <defs>
- <path d="M 0 0
-L 0 3.5
-" id="mb2b25eb0d6" style="stroke:#000000;stroke-width:0.8;"/>
- </defs>
- <g>
- <use style="stroke:#000000;stroke-width:0.8;" x="76.208885" xlink:href="#mb2b25eb0d6" y="170.44"/>
- </g>
- </g>
- <g id="text_1">
- <!-- $10^{2}$ -->
- <defs>
- <path d="M 26.59375 63.796875
-C 26.59375 65.890625 26.5 66 25.09375 66
-C 21.203125 61.359375 15.296875 59.890625 9.703125 59.6875
-C 9.40625 59.6875 8.90625 59.6875 8.796875 59.5
-C 8.703125 59.296875 8.703125 59.09375 8.703125 57
-C 11.796875 57 17 57.59375 21 59.984375
-L 21 7.296875
-C 21 3.796875 20.796875 2.59375 12.203125 2.59375
-L 9.203125 2.59375
-L 9.203125 0
-C 14 0.09375 19 0.1875 23.796875 0.1875
-C 28.59375 0.1875 33.59375 0.09375 38.40625 0
-L 38.40625 2.59375
-L 35.40625 2.59375
-C 26.796875 2.59375 26.59375 3.6875 26.59375 7.296875
-z
-" id="CMR17-49"/>
- <path d="M 42 31.84375
-C 42 37.96875 41.90625 48.421875 37.703125 56.453125
-C 34 63.484375 28.09375 66 22.90625 66
-C 18.09375 66 12 63.78125 8.203125 56.5625
-C 4.203125 49.015625 3.796875 39.671875 3.796875 31.84375
-C 3.796875 26.109375 3.90625 17.375 7 9.734375
-C 11.296875 -0.609375 19 -2 22.90625 -2
-C 27.5 -2 34.5 -0.109375 38.59375 9.4375
-C 41.59375 16.375 42 24.5 42 31.84375
-z
-M 22.90625 -0.40625
-C 16.5 -0.40625 12.703125 5.125 11.296875 12.75
-C 10.203125 18.6875 10.203125 27.328125 10.203125 32.953125
-C 10.203125 40.6875 10.203125 47.109375 11.5 53.234375
-C 13.40625 61.78125 19 64.390625 22.90625 64.390625
-C 27 64.390625 32.296875 61.671875 34.203125 53.4375
-C 35.5 47.71875 35.59375 40.984375 35.59375 32.953125
-C 35.59375 26.421875 35.59375 18.375 34.40625 12.453125
-C 32.296875 1.5 26.40625 -0.40625 22.90625 -0.40625
-z
-" id="CMR17-48"/>
- <path d="M 41.703125 15.46875
-L 39.90625 15.46875
-C 38.90625 8.390625 38.09375 7.1875 37.703125 6.59375
-C 37.203125 5.796875 30 5.796875 28.59375 5.796875
-L 9.40625 5.796875
-C 13 9.6875 20 16.765625 28.5 24.9375
-C 34.59375 30.71875 41.703125 37.5 41.703125 47.390625
-C 41.703125 59.1875 32.296875 66 21.796875 66
-C 10.796875 66 4.09375 56.296875 4.09375 47.296875
-C 4.09375 43.390625 7 42.890625 8.203125 42.890625
-C 9.203125 42.890625 12.203125 43.484375 12.203125 46.984375
-C 12.203125 50.09375 9.59375 51 8.203125 51
-C 7.59375 51 7 50.890625 6.59375 50.6875
-C 8.5 59.1875 14.296875 63.390625 20.40625 63.390625
-C 29.09375 63.390625 34.796875 56.5 34.796875 47.390625
-C 34.796875 38.703125 29.703125 31.21875 24 24.734375
-L 4.09375 2.296875
-L 4.09375 0
-L 39.296875 0
-z
-" id="CMR17-50"/>
- </defs>
- <g transform="translate(68.238803 185.74218)scale(0.12 -0.12)">
- <use transform="scale(0.996264)" xlink:href="#CMR17-49"/>
- <use transform="translate(45.690477 0)scale(0.996264)" xlink:href="#CMR17-48"/>
- <use transform="translate(91.380954 36.153639)scale(0.697382)" xlink:href="#CMR17-50"/>
- </g>
- </g>
- </g>
- <g id="xtick_2">
- <g id="line2d_2">
- <g>
- <use style="stroke:#000000;stroke-width:0.8;" x="117.671172" xlink:href="#mb2b25eb0d6" y="170.44"/>
- </g>
- </g>
- <g id="text_2">
- <!-- $10^{3}$ -->
- <defs>
- <path d="M 22.09375 34
-C 31 34 34.90625 26.140625 34.90625 17.09375
-C 34.90625 5.03125 28.5 0.390625 22.703125 0.390625
-C 17.40625 0.390625 8.796875 3.015625 6.09375 10.796875
-C 6.59375 10.59375 7.09375 10.59375 7.59375 10.59375
-C 10 10.59375 11.796875 12.1875 11.796875 14.796875
-C 11.796875 17.6875 9.59375 19 7.59375 19
-C 5.90625 19 3.296875 18.1875 3.296875 14.484375
-C 3.296875 5.234375 12.296875 -2 22.90625 -2
-C 34 -2 42.5 6.75 42.5 16.984375
-C 42.5 26.84375 34.5 34 25 35.09375
-C 32.59375 36.671875 39.90625 43.375 39.90625 52.390625
-C 39.90625 60.25 32 66 23 66
-C 13.90625 66 5.90625 60.34375 5.90625 52.296875
-C 5.90625 48.796875 8.5 48.1875 9.796875 48.1875
-C 11.90625 48.1875 13.703125 49.484375 13.703125 52.09375
-C 13.703125 54.6875 11.90625 56 9.796875 56
-C 9.40625 56 8.90625 56 8.5 55.796875
-C 11.40625 62.484375 19.296875 63.6875 22.796875 63.6875
-C 26.296875 63.6875 32.90625 61.96875 32.90625 52.296875
-C 32.90625 49.484375 32.5 44.546875 29.09375 40.21875
-C 26.09375 36.390625 22.703125 36.1875 19.40625 35.890625
-C 18.90625 35.890625 16.59375 35.6875 16.203125 35.6875
-C 15.5 35.59375 15.09375 35.5 15.09375 34.796875
-C 15.09375 34.09375 15.203125 34 17.203125 34
-z
-" id="CMR17-51"/>
- </defs>
- <g transform="translate(109.70109 185.74218)scale(0.12 -0.12)">
- <use transform="scale(0.996264)" xlink:href="#CMR17-49"/>
- <use transform="translate(45.690477 0)scale(0.996264)" xlink:href="#CMR17-48"/>
- <use transform="translate(91.380954 36.153639)scale(0.697382)" xlink:href="#CMR17-51"/>
- </g>
- </g>
- </g>
- <g id="xtick_3">
- <g id="line2d_3">
- <g>
- <use style="stroke:#000000;stroke-width:0.8;" x="159.133458" xlink:href="#mb2b25eb0d6" y="170.44"/>
- </g>
- </g>
- <g id="text_3">
- <!-- $10^{4}$ -->
- <defs>
- <path d="M 33.59375 64.796875
-C 33.59375 66.890625 33.5 67 31.703125 67
-L 2 19.59375
-L 2 17
-L 27.796875 17
-L 27.796875 7.1875
-C 27.796875 3.59375 27.59375 2.59375 20.59375 2.59375
-L 18.703125 2.59375
-L 18.703125 0
-C 21.90625 0.1875 27.296875 0.1875 30.703125 0.1875
-C 34.09375 0.1875 39.5 0.1875 42.703125 0
-L 42.703125 2.59375
-L 40.796875 2.59375
-C 33.796875 2.59375 33.59375 3.59375 33.59375 7.1875
-L 33.59375 17
-L 43.796875 17
-L 43.796875 19.59375
-L 33.59375 19.59375
-z
-M 28.09375 58.171875
-L 28.09375 19.59375
-L 4 19.59375
-z
-" id="CMR17-52"/>
- </defs>
- <g transform="translate(151.163376 185.74218)scale(0.12 -0.12)">
- <use transform="scale(0.996264)" xlink:href="#CMR17-49"/>
- <use transform="translate(45.690477 0)scale(0.996264)" xlink:href="#CMR17-48"/>
- <use transform="translate(91.380954 36.153639)scale(0.697382)" xlink:href="#CMR17-52"/>
- </g>
- </g>
- </g>
- <g id="xtick_4">
- <g id="line2d_4">
- <g>
- <use style="stroke:#000000;stroke-width:0.8;" x="200.595745" xlink:href="#mb2b25eb0d6" y="170.44"/>
- </g>
- </g>
- <g id="text_4">
- <!-- $10^{5}$ -->
- <defs>
- <path d="M 11.40625 58.59375
-C 12.40625 58.1875 16.5 56.890625 20.703125 56.890625
-C 30 56.890625 35.09375 61.890625 38 64.6875
-C 38 65.484375 38 66 37.40625 66
-C 37.296875 66 37.09375 66 36.296875 65.59375
-C 32.796875 64.09375 28.703125 63 23.703125 63
-C 20.703125 63 16.203125 63.359375 11.296875 65.484375
-C 10.203125 66 10 66 9.90625 66
-C 9.40625 66 9.296875 65.890625 9.296875 63.90625
-L 9.296875 34.859375
-C 9.296875 33.015625 9.296875 32.5 10.296875 32.5
-C 10.796875 32.5 11 32.703125 11.5 33.421875
-C 14.703125 38.046875 19.09375 40 24.09375 40
-C 27.59375 40 35.09375 37.734375 35.09375 20.203125
-C 35.09375 16.984375 35.09375 11.1875 32.09375 6.59375
-C 29.59375 2.484375 25.703125 0.390625 21.40625 0.390625
-C 14.796875 0.390625 8.09375 4.984375 6.296875 12.6875
-C 6.703125 12.59375 7.5 12.390625 7.90625 12.390625
-C 9.203125 12.390625 11.703125 13.09375 11.703125 16.1875
-C 11.703125 18.890625 9.796875 20 7.90625 20
-C 5.59375 20 4.09375 18.59375 4.09375 15.796875
-C 4.09375 7.09375 11 -2 21.59375 -2
-C 31.90625 -2 41.703125 6.890625 41.703125 19.796875
-C 41.703125 32.09375 33.90625 41.59375 24.203125 41.59375
-C 19.09375 41.59375 14.796875 39.6875 11.40625 36
-z
-" id="CMR17-53"/>
- </defs>
- <g transform="translate(192.625663 185.74218)scale(0.12 -0.12)">
- <use transform="scale(0.996264)" xlink:href="#CMR17-49"/>
- <use transform="translate(45.690477 0)scale(0.996264)" xlink:href="#CMR17-48"/>
- <use transform="translate(91.380954 36.153639)scale(0.697382)" xlink:href="#CMR17-53"/>
- </g>
- </g>
- </g>
- <g id="xtick_5">
- <g id="line2d_5">
- <g>
- <use style="stroke:#000000;stroke-width:0.8;" x="242.058031" xlink:href="#mb2b25eb0d6" y="170.44"/>
- </g>
- </g>
- <g id="text_5">
- <!-- $10^{6}$ -->
- <defs>
- <path d="M 10.59375 34.34375
-C 10.59375 58 21.796875 63.6875 28.296875 63.6875
-C 30.40625 63.6875 35.5 63.265625 37.5 59.09375
-C 35.90625 59.09375 32.90625 59.09375 32.90625 55.59375
-C 32.90625 52.890625 35.09375 52 36.5 52
-C 37.40625 52 40.09375 52.390625 40.09375 55.796875
-C 40.09375 62.296875 35.09375 66 28.203125 66
-C 16.296875 66 3.796875 53.296875 3.796875 31.421875
-C 3.796875 4.015625 15.09375 -2 23.09375 -2
-C 32.796875 -2 42 6.734375 42 20.234375
-C 42 32.828125 33.90625 42 23.703125 42
-C 17.59375 42 13.09375 37.96875 10.59375 30.921875
-z
-M 23.09375 0.390625
-C 10.796875 0.390625 10.796875 18.9375 10.796875 22.65625
-C 10.796875 29.90625 14.203125 40.390625 23.5 40.390625
-C 25.203125 40.390625 30.09375 40.390625 33.40625 33.4375
-C 35.203125 29.515625 35.203125 25.375 35.203125 20.34375
-C 35.203125 14.90625 35.203125 10.875 33.09375 6.84375
-C 30.90625 2.703125 27.703125 0.390625 23.09375 0.390625
-z
-" id="CMR17-54"/>
- </defs>
- <g transform="translate(234.08795 185.74218)scale(0.12 -0.12)">
- <use transform="scale(0.996264)" xlink:href="#CMR17-49"/>
- <use transform="translate(45.690477 0)scale(0.996264)" xlink:href="#CMR17-48"/>
- <use transform="translate(91.380954 36.153639)scale(0.697382)" xlink:href="#CMR17-54"/>
- </g>
- </g>
- </g>
- <g id="xtick_6">
- <g id="line2d_6">
- <defs>
- <path d="M 0 0
-L 0 2
-" id="mb222e6e450" style="stroke:#000000;stroke-width:0.6;"/>
- </defs>
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="59.709382" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_7">
- <g id="line2d_7">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="63.727493" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_8">
- <g id="line2d_8">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="67.010529" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_9">
- <g id="line2d_9">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="69.786296" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_10">
- <g id="line2d_10">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="72.190774" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_11">
- <g id="line2d_11">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="74.311675" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_12">
- <g id="line2d_12">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="88.690277" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_13">
- <g id="line2d_13">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="95.991423" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_14">
- <g id="line2d_14">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="101.171669" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_15">
- <g id="line2d_15">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="105.18978" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_16">
- <g id="line2d_16">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="108.472815" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_17">
- <g id="line2d_17">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="111.248582" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_18">
- <g id="line2d_18">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="113.653061" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_19">
- <g id="line2d_19">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="115.773961" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_20">
- <g id="line2d_20">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="130.152564" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_21">
- <g id="line2d_21">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="137.45371" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_22">
- <g id="line2d_22">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="142.633956" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_23">
- <g id="line2d_23">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="146.652066" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_24">
- <g id="line2d_24">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="149.935102" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_25">
- <g id="line2d_25">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="152.710869" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_26">
- <g id="line2d_26">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="155.115347" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_27">
- <g id="line2d_27">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="157.236248" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_28">
- <g id="line2d_28">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="171.61485" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_29">
- <g id="line2d_29">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="178.915996" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_30">
- <g id="line2d_30">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="184.096242" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_31">
- <g id="line2d_31">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="188.114353" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_32">
- <g id="line2d_32">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="191.397388" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_33">
- <g id="line2d_33">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="194.173155" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_34">
- <g id="line2d_34">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="196.577634" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_35">
- <g id="line2d_35">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="198.698534" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_36">
- <g id="line2d_36">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="213.077137" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_37">
- <g id="line2d_37">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="220.378283" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_38">
- <g id="line2d_38">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="225.558529" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_39">
- <g id="line2d_39">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="229.576639" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_40">
- <g id="line2d_40">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="232.859675" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_41">
- <g id="line2d_41">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="235.635442" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_42">
- <g id="line2d_42">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="238.03992" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_43">
- <g id="line2d_43">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="240.160821" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_44">
- <g id="line2d_44">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="254.539423" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_45">
- <g id="line2d_45">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="261.840569" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_46">
- <g id="line2d_46">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="267.020815" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="xtick_47">
- <g id="line2d_47">
- <g>
- <use style="stroke:#000000;stroke-width:0.6;" x="271.038926" xlink:href="#mb222e6e450" y="170.44"/>
- </g>
- </g>
- </g>
- <g id="text_6">
- <!-- $N$ -->
- <defs>
- <path d="M 74 57.53125
-C 75.09375 61.8125 76.703125 64.796875 84.296875 65.09375
-C 84.59375 65.09375 85.796875 65.1875 85.796875 66.890625
-C 85.796875 68 84.90625 68 84.5 68
-C 82.5 68 77.40625 67.796875 75.40625 67.796875
-L 70.59375 67.796875
-C 69.203125 67.796875 67.40625 68 66 68
-C 65.40625 68 64.203125 68 64.203125 66.09375
-C 64.203125 65.09375 65 65.09375 65.703125 65.09375
-C 71.703125 64.890625 72.09375 62.609375 72.09375 60.8125
-C 72.09375 59.921875 72 59.625 71.703125 58.21875
-L 60.40625 13.34375
-L 39 66.296875
-C 38.296875 67.890625 38.203125 68 36 68
-L 23.796875 68
-C 21.796875 68 20.90625 68 20.90625 66.09375
-C 20.90625 65.09375 21.59375 65.09375 23.5 65.09375
-C 24 65.09375 29.90625 65.09375 29.90625 64.203125
-C 29.90625 64 29.703125 63.203125 29.59375 62.90625
-L 16.296875 10.15625
-C 15.09375 5.28125 12.703125 3.1875 6.09375 2.890625
-C 5.59375 2.890625 4.59375 2.796875 4.59375 1
-C 4.59375 0 5.59375 0 5.90625 0
-C 7.90625 0 13 0.1875 15 0.1875
-L 19.796875 0.1875
-C 21.203125 0.1875 22.90625 0 24.296875 0
-C 25 0 26.09375 0 26.09375 1.890625
-C 26.09375 2.796875 25.09375 2.890625 24.703125 2.890625
-C 21.40625 2.984375 18.203125 3.59375 18.203125 7.171875
-C 18.203125 7.96875 18.40625 8.859375 18.59375 9.65625
-L 32.09375 62.90625
-C 32.703125 61.90625 32.703125 61.703125 33.09375 60.8125
-L 56.90625 1.796875
-C 57.40625 0.59375 57.59375 0 58.5 0
-C 59.5 0 59.59375 0.296875 60 2
-z
-" id="CMMI12-78"/>
- </defs>
- <g transform="translate(160.794012 200.368955)scale(0.12 -0.12)">
- <use transform="scale(0.996264)" xlink:href="#CMMI12-78"/>
- </g>
- </g>
- </g>
- <g id="matplotlib.axis_2">
- <g id="ytick_1">
- <g id="line2d_48">
- <defs>
- <path d="M 0 0
-L -3.5 0
-" id="mbe8674c73b" style="stroke:#000000;stroke-width:0.8;"/>
- </defs>
- <g>
- <use style="stroke:#000000;stroke-width:0.8;" x="58.441838" xlink:href="#mbe8674c73b" y="148.241174"/>
- </g>
- </g>
- <g id="text_7">
- <!-- $10^{-2}$ -->
- <defs>
- <path d="M 65.90625 23
-C 67.59375 23 69.40625 23 69.40625 25
-C 69.40625 27 67.59375 27 65.90625 27
-L 11.796875 27
-C 10.09375 27 8.296875 27 8.296875 25
-C 8.296875 23 10.09375 23 11.796875 23
-z
-" id="CMSY10-0"/>
- </defs>
- <g transform="translate(28.915168 152.392264)scale(0.12 -0.12)">
- <use transform="scale(0.996264)" xlink:href="#CMR17-49"/>
- <use transform="translate(45.690477 0)scale(0.996264)" xlink:href="#CMR17-48"/>
- <use transform="translate(91.380954 36.153639)scale(0.697382)" xlink:href="#CMSY10-0"/>
- <use transform="translate(145.621947 36.153639)scale(0.697382)" xlink:href="#CMR17-50"/>
- </g>
- </g>
- </g>
- <g id="ytick_2">
- <g id="line2d_49">
- <g>
- <use style="stroke:#000000;stroke-width:0.8;" x="58.441838" xlink:href="#mbe8674c73b" y="112.581834"/>
- </g>
- </g>
- <g id="text_8">
- <!-- $10^{0}$ -->
- <g transform="translate(35.501675 116.732924)scale(0.12 -0.12)">
- <use transform="scale(0.996264)" xlink:href="#CMR17-49"/>
- <use transform="translate(45.690477 0)scale(0.996264)" xlink:href="#CMR17-48"/>
- <use transform="translate(91.380954 36.153639)scale(0.697382)" xlink:href="#CMR17-48"/>
- </g>
- </g>
- </g>
- <g id="ytick_3">
- <g id="line2d_50">
- <g>
- <use style="stroke:#000000;stroke-width:0.8;" x="58.441838" xlink:href="#mbe8674c73b" y="76.922494"/>
- </g>
- </g>
- <g id="text_9">
- <!-- $10^{2}$ -->
- <g transform="translate(35.501675 81.073584)scale(0.12 -0.12)">
- <use transform="scale(0.996264)" xlink:href="#CMR17-49"/>
- <use transform="translate(45.690477 0)scale(0.996264)" xlink:href="#CMR17-48"/>
- <use transform="translate(91.380954 36.153639)scale(0.697382)" xlink:href="#CMR17-50"/>
- </g>
- </g>
- </g>
- <g id="ytick_4">
- <g id="line2d_51">
- <g>
- <use style="stroke:#000000;stroke-width:0.8;" x="58.441838" xlink:href="#mbe8674c73b" y="41.263154"/>
- </g>
- </g>
- <g id="text_10">
- <!-- $10^{4}$ -->
- <g transform="translate(35.501675 45.414244)scale(0.12 -0.12)">
- <use transform="scale(0.996264)" xlink:href="#CMR17-49"/>
- <use transform="translate(45.690477 0)scale(0.996264)" xlink:href="#CMR17-48"/>
- <use transform="translate(91.380954 36.153639)scale(0.697382)" xlink:href="#CMR17-52"/>
- </g>
- </g>
- </g>
- <g id="text_11">
- <!-- $T$ [s] -->
- <defs>
- <path d="M 41.703125 60.71875
-C 42.296875 63.09375 42.5 64 44 64.390625
-C 44.796875 64.59375 48.09375 64.59375 50.203125 64.59375
-C 60.203125 64.59375 64.90625 64.203125 64.90625 56.4375
-C 64.90625 54.9375 64.5 51.15625 63.90625 47.46875
-L 63.796875 46.28125
-C 63.796875 45.890625 64.203125 45.28125 64.796875 45.28125
-C 65.796875 45.28125 65.796875 45.78125 66.09375 47.375
-L 69 64.984375
-C 69.203125 65.890625 69.203125 66.09375 69.203125 66.390625
-C 69.203125 67.484375 68.59375 67.484375 66.59375 67.484375
-L 11.90625 67.484375
-C 9.59375 67.484375 9.5 67.390625 8.90625 65.59375
-L 2.796875 47.671875
-C 2.703125 47.46875 2.40625 46.375 2.40625 46.28125
-C 2.40625 45.78125 2.796875 45.28125 3.40625 45.28125
-C 4.203125 45.28125 4.40625 45.6875 4.796875 46.984375
-C 9 59.015625 11.09375 64.59375 24.40625 64.59375
-L 31.09375 64.59375
-C 33.5 64.59375 34.5 64.59375 34.5 63.5
-C 34.5 63.203125 34.5 63 34 61.203125
-L 20.59375 7.765625
-C 19.59375 3.890625 19.40625 2.890625 8.796875 2.890625
-C 6.296875 2.890625 5.59375 2.890625 5.59375 1
-C 5.59375 0 6.703125 0 7.203125 0
-C 9.703125 0 12.296875 0.1875 14.796875 0.1875
-L 30.40625 0.1875
-C 32.90625 0.1875 35.59375 0 38.09375 0
-C 39.203125 0 40.203125 0 40.203125 1.890625
-C 40.203125 2.890625 39.5 2.890625 36.90625 2.890625
-C 27.90625 2.890625 27.90625 3.78125 27.90625 5.28125
-C 27.90625 5.375 27.90625 6.078125 28.296875 7.671875
-z
-" id="CMMI12-84"/>
- <path d="M 25.203125 -25
-L 25.203125 -18.90625
-L 16.59375 -18.90625
-L 16.59375 68.890625
-L 25.203125 68.890625
-L 25.203125 75
-L 9.296875 75
-L 9.296875 -25
-z
-" id="CMSS17-91"/>
- <path d="M 32.203125 40.984375
-C 26.296875 43.796875 21.703125 44 18.703125 44
-C 11.59375 44 3.09375 41.484375 3.09375 31.390625
-C 3.09375 21.296875 14.09375 19.09375 17.09375 18.484375
-C 21.703125 17.59375 26.796875 16.59375 26.796875 11.59375
-C 26.796875 5.296875 19.59375 5.296875 18.296875 5.296875
-C 14.296875 5.296875 8.796875 6.390625 3.796875 9.984375
-L 2.59375 3.296875
-C 8.296875 0 13.796875 -1 18.40625 -1
-C 30.703125 -1 33.796875 6.5 33.796875 12.1875
-C 33.796875 17.09375 31 20.390625 29.09375 21.890625
-C 25.796875 24.484375 24.59375 24.796875 16.40625 26.484375
-C 15 26.6875 10.09375 27.796875 10.09375 32.296875
-C 10.09375 37.984375 16.40625 37.984375 17.796875 37.984375
-C 24.296875 37.984375 28.296875 35.984375 31 34.484375
-z
-" id="CMSS17-115"/>
- <path d="M 17.90625 75
-L 2 75
-L 2 68.890625
-L 10.59375 68.890625
-L 10.59375 -18.90625
-L 2 -18.90625
-L 2 -25
-L 17.90625 -25
-z
-" id="CMSS17-93"/>
- </defs>
- <g transform="translate(21.926376 104.781187)rotate(-90)scale(0.12 -0.12)">
- <use transform="scale(0.996264)" xlink:href="#CMMI12-84"/>
- <use transform="translate(101.952745 0)scale(0.996264)" xlink:href="#CMSS17-91"/>
- <use transform="translate(129.138184 0)scale(0.996264)" xlink:href="#CMSS17-115"/>
- <use transform="translate(165.051726 0)scale(0.996264)" xlink:href="#CMSS17-93"/>
- </g>
- </g>
- </g>
- <g id="line2d_52">
- <path clip-path="url(#p872e16c07f)" d="M 68.172664 163.396364
-L 105.616839 153.527939
-L 143.061015 139.427159
-L 180.505191 122.790312
-L 217.949367 104.703115
-L 255.393543 86.077514
-" style="fill:none;stroke:#ff0000;stroke-linecap:square;stroke-width:0.8;"/>
- <defs>
- <path d="M 0 2
-C 0.530406 2 1.03916 1.789267 1.414214 1.414214
-C 1.789267 1.03916 2 0.530406 2 0
-C 2 -0.530406 1.789267 -1.03916 1.414214 -1.414214
-C 1.03916 -1.789267 0.530406 -2 0 -2
-C -0.530406 -2 -1.03916 -1.789267 -1.414214 -1.414214
-C -1.789267 -1.03916 -2 -0.530406 -2 0
-C -2 0.530406 -1.789267 1.03916 -1.414214 1.414214
-C -1.03916 1.789267 -0.530406 2 0 2
-z
-" id="m9bcb61bf65" style="stroke:#ff0000;"/>
- </defs>
- <g clip-path="url(#p872e16c07f)">
- <use style="fill:#ff0000;stroke:#ff0000;" x="68.172664" xlink:href="#m9bcb61bf65" y="163.396364"/>
- <use style="fill:#ff0000;stroke:#ff0000;" x="105.616839" xlink:href="#m9bcb61bf65" y="153.527939"/>
- <use style="fill:#ff0000;stroke:#ff0000;" x="143.061015" xlink:href="#m9bcb61bf65" y="139.427159"/>
- <use style="fill:#ff0000;stroke:#ff0000;" x="180.505191" xlink:href="#m9bcb61bf65" y="122.790312"/>
- <use style="fill:#ff0000;stroke:#ff0000;" x="217.949367" xlink:href="#m9bcb61bf65" y="104.703115"/>
- <use style="fill:#ff0000;stroke:#ff0000;" x="255.393543" xlink:href="#m9bcb61bf65" y="86.077514"/>
- </g>
- </g>
- <g id="line2d_53">
- <path clip-path="url(#p872e16c07f)" d="M 159.133458 148.241174
-L 162.707793 146.539024
-L 166.282128 144.840322
-L 169.856463 143.144926
-L 173.430798 141.452703
-L 177.005133 139.763529
-L 180.579468 138.077287
-L 184.153803 136.393866
-L 187.728139 134.71316
-L 191.302474 133.035071
-L 194.876809 131.359506
-L 198.451144 129.686375
-L 202.025479 128.015595
-L 205.599814 126.347086
-L 209.174149 124.680772
-L 212.748484 123.01658
-L 216.322819 121.354443
-L 219.897154 119.694294
-L 223.471489 118.036072
-L 227.045824 116.379718
-L 230.620159 114.725174
-L 234.194494 113.072386
-L 237.768829 111.421304
-L 241.343164 109.771876
-L 244.917499 108.124057
-L 248.491834 106.477799
-L 252.066169 104.833061
-L 255.640504 103.189801
-L 259.214839 101.547978
-L 262.789174 99.907553
-" style="fill:none;stroke:#ff0000;stroke-dasharray:2.96,1.28;stroke-dashoffset:0;stroke-width:0.8;"/>
- </g>
- <g id="line2d_54">
- <path clip-path="url(#p872e16c07f)" d="M 68.172664 143.809553
-L 105.616839 126.284682
-L 143.061015 107.916631
-L 180.505191 88.672473
-L 217.949367 65.720274
-" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-width:0.8;"/>
- <defs>
- <path d="M 0 2
-C 0.530406 2 1.03916 1.789267 1.414214 1.414214
-C 1.789267 1.03916 2 0.530406 2 0
-C 2 -0.530406 1.789267 -1.03916 1.414214 -1.414214
-C 1.03916 -1.789267 0.530406 -2 0 -2
-C -0.530406 -2 -1.03916 -1.789267 -1.414214 -1.414214
-C -1.789267 -1.03916 -2 -0.530406 -2 0
-C -2 0.530406 -1.789267 1.03916 -1.414214 1.414214
-C -1.03916 1.789267 -0.530406 2 0 2
-z
-" id="m70825a5ceb" style="stroke:#000000;"/>
- </defs>
- <g clip-path="url(#p872e16c07f)">
- <use style="stroke:#000000;" x="68.172664" xlink:href="#m70825a5ceb" y="143.809553"/>
- <use style="stroke:#000000;" x="105.616839" xlink:href="#m70825a5ceb" y="126.284682"/>
- <use style="stroke:#000000;" x="143.061015" xlink:href="#m70825a5ceb" y="107.916631"/>
- <use style="stroke:#000000;" x="180.505191" xlink:href="#m70825a5ceb" y="88.672473"/>
- <use style="stroke:#000000;" x="217.949367" xlink:href="#m70825a5ceb" y="65.720274"/>
- </g>
- </g>
- <g id="line2d_55">
- <path clip-path="url(#p872e16c07f)" d="M 159.133458 89.384899
-L 162.707793 87.079338
-L 166.282128 84.773777
-L 169.856463 82.468216
-L 173.430798 80.162656
-L 177.005133 77.857095
-L 180.579468 75.551534
-L 184.153803 73.245973
-L 187.728139 70.940413
-L 191.302474 68.634852
-L 194.876809 66.329291
-L 198.451144 64.02373
-L 202.025479 61.718169
-L 205.599814 59.412609
-L 209.174149 57.107048
-L 212.748484 54.801487
-L 216.322819 52.495926
-L 219.897154 50.190366
-L 223.471489 47.884805
-L 227.045824 45.579244
-L 230.620159 43.273683
-L 234.194494 40.968123
-L 237.768829 38.662562
-L 241.343164 36.357001
-L 244.917499 34.05144
-L 248.491834 31.745879
-L 252.066169 29.440319
-L 255.640504 27.134758
-L 259.214839 24.829197
-L 262.789174 22.523636
-" style="fill:none;stroke:#000000;stroke-dasharray:2.96,1.28;stroke-dashoffset:0;stroke-width:0.8;"/>
- </g>
- <g id="patch_3">
- <path d="M 58.441838 170.44
-L 58.441838 15.48
-" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.5;"/>
- </g>
- <g id="patch_4">
- <path d="M 272.52 170.44
-L 272.52 15.48
-" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.5;"/>
- </g>
- <g id="patch_5">
- <path d="M 58.441838 170.44
-L 272.52 170.44
-" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.5;"/>
- </g>
- <g id="patch_6">
- <path d="M 58.441838 15.48
-L 272.52 15.48
-" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.5;"/>
- </g>
- <g id="legend_1">
- <g id="patch_7">
- <path d="M 64.041838 74.495951
-L 138.659499 74.495951
-Q 140.259499 74.495951 140.259499 72.895951
-L 140.259499 21.08
-Q 140.259499 19.48 138.659499 19.48
-L 64.041838 19.48
-Q 62.441838 19.48 62.441838 21.08
-L 62.441838 72.895951
-Q 62.441838 74.495951 64.041838 74.495951
-z
-" style="fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;"/>
- </g>
- <g id="line2d_56">
- <path d="M 65.641838 25.48
-L 81.641838 25.48
-" style="fill:none;stroke:#ff0000;stroke-linecap:square;stroke-width:0.8;"/>
- </g>
- <g id="line2d_57">
- <g>
- <use style="fill:#ff0000;stroke:#ff0000;" x="73.641838" xlink:href="#m9bcb61bf65" y="25.48"/>
- </g>
- </g>
- <g id="text_12">
- <!-- VIM -->
- <defs>
- <path d="M 61.09375 69
-L 53.296875 69
-L 36 21.265625
-C 35.5 19.875 32.40625 10.734375 31.796875 7.5625
-L 31.703125 7.5625
-C 30.90625 11.328125 27.703125 20.171875 26 25.046875
-L 14.40625 57.34375
-L 10.09375 69
-L 1.296875 69
-L 26.796875 0
-L 35.59375 0
-z
-" id="CMSS17-86"/>
- <path d="M 17.09375 69
-L 8.703125 69
-L 8.703125 0
-L 17.09375 0
-z
-" id="CMSS17-73"/>
- <path d="M 49.90625 37.078125
-L 45.09375 23.0625
-C 44.296875 20.484375 41.59375 12.421875 41 9.25
-L 40.90625 9.25
-C 40.59375 11.234375 40 13.328125 38.40625 18.390625
-C 37.5 21.375 36.5 24.453125 35.5 27.234375
-L 20.703125 69
-L 9 69
-L 9 0
-L 16.796875 0
-L 16.796875 60.921875
-L 16.90625 60.921875
-C 16.90625 60.828125 17.796875 56.453125 23.90625 39.0625
-L 37.09375 1.59375
-L 44.5 1.59375
-L 56.40625 34.890625
-C 57.203125 37.171875 59.703125 44.421875 60.796875 47.90625
-C 61.796875 50.890625 64.296875 58.25 64.90625 61.125
-L 65 61.125
-L 65 0
-L 72.90625 0
-L 72.90625 69
-L 61.296875 69
-z
-" id="CMSS17-77"/>
- </defs>
- <g transform="translate(88.041838 28.28)scale(0.08 -0.08)">
- <use transform="scale(0.996264)" xlink:href="#CMSS17-86"/>
- <use transform="translate(62.217855 0)scale(0.996264)" xlink:href="#CMSS17-73"/>
- <use transform="translate(88.00178 0)scale(0.996264)" xlink:href="#CMSS17-77"/>
- </g>
- </g>
- <g id="line2d_58">
- <path d="M 65.641838 37.00733
-L 81.641838 37.00733
-" style="fill:none;stroke:#ff0000;stroke-dasharray:2.96,1.28;stroke-dashoffset:0;stroke-width:0.8;"/>
- </g>
- <g id="line2d_59"/>
- <g id="text_13">
- <!-- $\mathcal{O}\left(N\log(N)\right)$ -->
- <defs>
- <path d="M 77.703125 48.609375
-C 77.703125 61.375 72.09375 71 59.90625 71
-C 49.5 71 40.703125 62.578125 40 61.96875
-C 32 54.03125 29 44.984375 29 44.796875
-C 29 44.1875 29.5 44.09375 30 44.09375
-C 31.90625 44.09375 33.5 45.09375 35 46.203125
-C 36.796875 47.5 36.90625 47.796875 38 50.109375
-C 38.90625 52.125 41.203125 57.046875 44.90625 61.265625
-C 47.296875 63.984375 49.296875 65.484375 53.296875 65.484375
-C 63 65.484375 69.203125 57.453125 69.203125 44.28125
-C 69.203125 23.796875 54.703125 3.5 36.203125 3.5
-C 22 3.5 14.203125 14.84375 14.203125 29.21875
-C 14.203125 42.875 21.203125 57.953125 35.796875 66.59375
-C 36.796875 67.1875 39.796875 68.984375 39.796875 70.296875
-C 39.796875 71 39 71 38.796875 71
-C 35.296875 71 5.703125 55.03125 5.703125 24.890625
-C 5.703125 10.828125 13 -2 29.59375 -2
-C 49.09375 -2 77.703125 17.65625 77.703125 48.609375
-z
-" id="CMSY10-79"/>
- <path d="M 30.59375 -24.40625
-C 30.59375 -24.3125 30.59375 -24.109375 30.296875 -23.8125
-C 25.703125 -19.109375 13.40625 -6.296875 13.40625 24.9375
-C 13.40625 56.171875 25.5 68.875 30.40625 73.890625
-C 30.40625 73.984375 30.59375 74.1875 30.59375 74.484375
-C 30.59375 74.796875 30.296875 75 29.90625 75
-C 28.796875 75 20.296875 67.578125 15.40625 56.5625
-C 10.40625 45.453125 9 34.65625 9 25.046875
-C 9 17.828125 9.703125 5.625 15.703125 -7.296875
-C 20.5 -17.703125 28.703125 -25 29.90625 -25
-C 30.40625 -25 30.59375 -24.8125 30.59375 -24.40625
-z
-" id="CMR17-40"/>
- <path d="M 15.296875 69
-L 3.40625 67.890625
-L 3.40625 65.296875
-C 9.296875 65.296875 10.203125 64.703125 10.203125 59.921875
-L 10.203125 6.859375
-C 10.203125 3.09375 9.796875 2.59375 3.40625 2.59375
-L 3.40625 0
-C 5.796875 0.1875 10.203125 0.1875 12.703125 0.1875
-C 15.296875 0.1875 19.703125 0.1875 22.09375 0
-L 22.09375 2.59375
-C 15.703125 2.59375 15.296875 2.984375 15.296875 6.859375
-z
-" id="CMR17-108"/>
- <path d="M 43.09375 21.1875
-C 43.09375 34 33.796875 44 22.90625 44
-C 12 44 2.703125 34 2.703125 21.1875
-C 2.703125 8.59375 12 -1 22.90625 -1
-C 33.796875 -1 43.09375 8.59375 43.09375 21.1875
-z
-M 22.90625 0.796875
-C 18.203125 0.796875 14.203125 3.59375 11.90625 7.5
-C 9.40625 12 9.09375 17.59375 9.09375 22
-C 9.09375 26.1875 9.296875 31.390625 11.90625 35.890625
-C 13.90625 39.1875 17.796875 42.390625 22.90625 42.390625
-C 27.40625 42.390625 31.203125 39.890625 33.59375 36.390625
-C 36.703125 31.6875 36.703125 25.09375 36.703125 22
-C 36.703125 18.09375 36.5 12.09375 33.796875 7.296875
-C 31 2.6875 26.703125 0.796875 22.90625 0.796875
-z
-" id="CMR17-111"/>
- <path d="M 11.09375 18.203125
-C 13 16.6875 16.296875 15 20.296875 15
-C 28.203125 15 35 21.234375 35 29.609375
-C 35 32.234375 34.203125 36.265625 31.203125 39.390625
-C 34 42.390625 38.09375 43.390625 40.40625 43.390625
-C 40.796875 43.390625 41.40625 43.390625 41.90625 43.09375
-C 41.5 42.984375 40.59375 42.59375 40.59375 40.984375
-C 40.59375 39.6875 41.5 38.796875 42.796875 38.796875
-C 44.296875 38.796875 45.09375 39.796875 45.09375 41.09375
-C 45.09375 42.984375 43.59375 45 40.40625 45
-C 36.40625 45 32.90625 43.09375 30.09375 40.484375
-C 27.09375 43.1875 23.5 44.1875 20.296875 44.1875
-C 12.40625 44.1875 5.59375 37.984375 5.59375 29.609375
-C 5.59375 23.859375 8.90625 20.21875 9.90625 19.21875
-C 6.90625 15.6875 6.90625 11.59375 6.90625 11.09375
-C 6.90625 8.5 7.90625 4.6875 11.296875 2.59375
-C 6.09375 1.28125 2 -2.875 2 -8.078125
-C 2 -15.5625 11.5 -21 22.90625 -21
-C 33.90625 -21 43.796875 -15.765625 43.796875 -7.96875
-C 43.796875 6 29 6 21.296875 6
-C 19 6 14.90625 6 14.40625 6.09375
-C 11.296875 6.59375 9.203125 9.390625 9.203125 12.890625
-C 9.203125 13.796875 9.203125 16 11.09375 18.203125
-z
-M 20.296875 16.6875
-C 11.5 16.6875 11.5 27.59375 11.5 29.609375
-C 11.5 31.625 11.5 42.484375 20.296875 42.484375
-C 29.09375 42.484375 29.09375 31.625 29.09375 29.609375
-C 29.09375 27.59375 29.09375 16.6875 20.296875 16.6875
-z
-M 22.90625 -19.3125
-C 12.90625 -19.3125 6 -13.796875 6 -8.078125
-C 6 -4.859375 7.703125 -1.84375 9.90625 -0.171875
-C 12.40625 1.59375 13.40625 1.59375 20.203125 1.59375
-C 28.40625 1.59375 39.796875 1.59375 39.796875 -8.078125
-C 39.796875 -13.796875 32.90625 -19.3125 22.90625 -19.3125
-z
-" id="CMR17-103"/>
- <path d="M 26.296875 24.9375
-C 26.296875 32.140625 25.59375 44.359375 19.59375 57.265625
-C 14.796875 67.6875 6.59375 75 5.40625 75
-C 5.09375 75 4.703125 74.890625 4.703125 74.390625
-C 4.703125 74.1875 4.796875 74.09375 4.90625 73.890625
-C 9.703125 68.875 21.90625 56.171875 21.90625 25.046875
-C 21.90625 -6.1875 9.796875 -18.90625 4.90625 -23.90625
-C 4.796875 -24.109375 4.703125 -24.203125 4.703125 -24.40625
-C 4.703125 -24.90625 5.09375 -25 5.40625 -25
-C 6.5 -25 15 -17.609375 19.90625 -6.59375
-C 24.90625 4.515625 26.296875 15.328125 26.296875 24.9375
-z
-" id="CMR17-41"/>
- </defs>
- <g transform="translate(88.041838 39.80733)scale(0.08 -0.08)">
- <use transform="scale(0.996264)" xlink:href="#CMSY10-79"/>
- <use transform="translate(98.685852 0.003177)scale(0.996264)" xlink:href="#CMR17-40"/>
- <use transform="translate(133.966619 0)scale(0.996264)" xlink:href="#CMMI12-78"/>
- <use transform="translate(239.092797 0)scale(0.996264)" xlink:href="#CMR17-108"/>
- <use transform="translate(263.963856 0)scale(0.996264)" xlink:href="#CMR17-111"/>
- <use transform="translate(309.654333 0)scale(0.996264)" xlink:href="#CMR17-103"/>
- <use transform="translate(356.645976 0)scale(0.996264)" xlink:href="#CMR17-40"/>
- <use transform="translate(391.926744 0)scale(0.996264)" xlink:href="#CMMI12-78"/>
- <use transform="translate(480.448516 0)scale(0.996264)" xlink:href="#CMR17-41"/>
- <use transform="translate(515.729284 0.003177)scale(0.996264)" xlink:href="#CMR17-41"/>
- </g>
- </g>
- <g id="line2d_60">
- <path d="M 65.641838 48.599858
-L 81.641838 48.599858
-" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-width:0.8;"/>
- </g>
- <g id="line2d_61">
- <g>
- <use style="stroke:#000000;" x="73.641838" xlink:href="#m70825a5ceb" y="48.599858"/>
- </g>
- </g>
- <g id="text_14">
- <!-- FEM -->
- <defs>
- <path d="M 45.59375 31
-L 45.59375 37.09375
-L 17.203125 37.09375
-L 17.203125 62.390625
-L 29.40625 62.390625
-C 30.59375 62.390625 31.796875 62.296875 33 62.296875
-L 49.5 62.296875
-L 49.5 68.796875
-L 8.796875 68.796875
-L 8.796875 0
-L 17.203125 0
-L 17.203125 31
-z
-" id="CMSS17-70"/>
- <path d="M 30.59375 6.796875
-C 22.59375 6.796875 19 6.796875 17.203125 6.6875
-L 17.203125 32.890625
-L 48.203125 32.890625
-L 48.203125 39
-L 17.203125 39
-L 17.203125 62.390625
-L 30.09375 62.390625
-C 31.296875 62.390625 32.5 62.296875 33.703125 62.296875
-L 50.796875 62.296875
-L 50.796875 68.796875
-L 8.796875 68.796875
-L 8.796875 0
-L 52.09375 0
-L 52.09375 6.890625
-z
-" id="CMSS17-69"/>
- </defs>
- <g transform="translate(88.041838 51.399858)scale(0.08 -0.08)">
- <use transform="scale(0.996264)" xlink:href="#CMSS17-70"/>
- <use transform="translate(53.289559 0)scale(0.996264)" xlink:href="#CMSS17-69"/>
- <use transform="translate(109.181573 0)scale(0.996264)" xlink:href="#CMSS17-77"/>
- </g>
- </g>
- <g id="line2d_62">
- <path d="M 65.641838 63.315305
-L 81.641838 63.315305
-" style="fill:none;stroke:#000000;stroke-dasharray:2.96,1.28;stroke-dashoffset:0;stroke-width:0.8;"/>
- </g>
- <g id="line2d_63"/>
- <g id="text_15">
- <!-- $\mathcal{O}\big(N^\frac{3}{2}\big)$ -->
- <g transform="translate(88.041838 66.115305)scale(0.08 -0.08)">
- <use transform="scale(0.996264)" xlink:href="#CMSY10-79"/>
- <use transform="translate(82.081446 0.003177)scale(0.996264)" xlink:href="#CMR17-40"/>
- <use transform="translate(117.362214 0)scale(0.996264)" xlink:href="#CMMI12-78"/>
- <use transform="translate(207.0795 63.611782)scale(0.498132)" xlink:href="#CMR17-51"/>
- <use transform="translate(207.0795 12.105073)scale(0.498132)" xlink:href="#CMR17-50"/>
- <use transform="translate(231.618385 0.003177)scale(0.996264)" xlink:href="#CMR17-41"/>
- <path d="M 207.0795 52.193465
-L 229.924739 52.193465
-L 229.924739 54.982916
-L 207.0795 54.982916
-L 207.0795 52.193465
-z
-"/>
- </g>
- </g>
- </g>
- </g>
- </g>
- <defs>
- <clipPath id="p872e16c07f">
- <rect height="154.96" width="214.078162" x="58.441838" y="15.48"/>
- </clipPath>
- </defs>
-</svg>
diff --git a/paper.md b/paper.md
index 696604c..ea5d90f 100644
--- a/paper.md
+++ b/paper.md
@@ -1,122 +1,122 @@
---
title: 'Tamaas: a library for elastic-plastic contact of rough surfaces'
tags:
- C++
- Python
- contact
- rough surface
- plasticity
authors:
- name: Lucas Frérot
orcid: 0000-0002-4138-1052
affiliation: 1
- name: Guillaume Anciaux
orcid: 0000-0002-9624-5621
affiliation: 1
- name: Jean-François Molinari
orcid: 0000-0002-1728-1844
affiliation: 1
affiliations:
- name: Civil Engineering Institute, École Polytechnique Fédérale de Lausanne, Switzerland
index: 1
date: 13 December 2019
bibliography: paper.bibtex
---
# Summary
Physical phenomena that happen at solid contact interfaces, such as
friction and wear, are largely entwined with the roughness of the
surfaces in contact. For example, the fact that the friction force
between two solids in contact is independent of their apparent contact
area is due to roughness, as the solids are only in contact over a
smaller "true contact area" which only depends on the normal force.
Roughness occurs on most man-made and natural surfaces alike
[@persson_nature_2005] and can span many orders of magnitude, from the
nanometer scale to the kilometer scale [@renard_constant_2013]. This
poses a serious challenge to conventional numerical approaches in
solid mechanics such as the finite-element method (FEM).
Boundary integral methods [@bonnet_boundary_1995] are commonly
employed in place of the FEM in rough elastic contact because of an
inherent dimensionality reduction: the computational effort is focused
on the contact interface whereas the FEM requires discretization of
the volume of the solids in contact. In addition, the use of a
half-space geometry provides a translational invariance: the
computation of equilibrium solutions can then be accelerated with the
fast-Fourier Transform.
However, because of the roughness, the total contact load is
distributed over a small area and local contact pressures are expected
to cause non-linear material behavior, such as plasticity. In such a
case, volume integral methods can be employed to account for plastic
deformation. These enjoy properties analogous to boundary integral
methods and can be accelerated with a Fourier approach
[@frerot_fourieraccelerated_2019].
Taking plasticity into account is necessary in the accurate
description of contact interfaces for the understanding of friction
and wear. Moreover, high performance implementations are needed to
model realistic rough surfaces.
``Tamaas`` is a C++ library with a Python interface, developed in the
[Solid Mechanics Simulation Lab](https://www.epfl.ch/labs/lsms) at
EPFL, that implements a unique Fourier-accelerated volume integral
formulation of equilibrium [@frerot_fourieraccelerated_2019] for the
solution of elastic-plastic rough contact problems. The use of C++
allows for a particular focus on performance: most loops are
paralelized using ``Thrust/OpenMP`` and the fast-Fourier transforms
are computed with ``FFTW3/OpenMP``. Thanks to this, it can handle
simulations with upwards of 100 million degrees of freedom on a single
compute node [@frerot_fourieraccelerated_2019].
# Features and Performance
``Tamaas`` provides access in its Python API to random rough surface
generation procedures (e.g. @hu_simulation_1992), statistical tools
(e.g. autocorrelation and power spectrum computations) and a variety
of contact algorithms:
- Normal and adhesive contact schemes based on the conjugate gradient
[@polonsky_numerical_1999; @rey_normal_2017];
- Frictional contact;
- Elastic-plastic contact [@frerot_fourieraccelerated_2019].
``Tamaas`` also exposes in its Python API the accelerated linear
operators it uses to compute equilibrium solutions, making prototyping
new algorithms convenient.
We compare in figure 1 the scaling properties of Tamaas to a reference
high-performance C++ FEM implementation named
[Akantu](https://akantu.ch/) [@richart_implementation_2015] which uses
the direct solver [MUMPS](http://mumps.enseeiht.fr/). The reference
problem is the elastic equilibrium of a half-space with an isotropic
spherical inclusion [@mindlin_thermoelastic_1950]. $N$ represents the
number of points in the computational domain.
![Scaling comparison between the acclerated volume integral method
implemented in ``Tamaas`` and a finite-element method with a direct
solver for the solution of the equilibrium of a half-space with a
spherical isotropic inclusion. $N$ is the number of points in the
-computational domain. When $N=2^18$ ``Tamaas`` is 200 times faster
-than the FEM implementation Akantu.](complexity.svg)
+computational domain. When $N=2^{18}$ ``Tamaas`` is 200 times faster
+than the FEM implementation Akantu.](complexity.pdf)
The following publications have been made possible with ``Tamaas``:
- @yastrebov_contact_2012
- @yastrebov_contact_2014
- @yastrebov_infinitesimal_2015
- @yastrebov_accurate_2017
- @yastrebov_role_2017
- @rey_normal_2017
- @rey_stability_2018
- @rey_quantifying_2019
- @frerot_mechanistic_2018
- @frerot_fourieraccelerated_2019
- @frerot_crack_2019
# Acknowledgements
We acknowledge the financial support of the Swiss National Science Foundation (grant #162569 "Contact mechanics of rough surfaces").
# References

Event Timeline