mirror of
				https://github.com/eledio-devices/thirdparty-littlefs.git
				synced 2025-10-31 00:32:38 +01:00 
			
		
		
		
	Created gh-images branch for storing images
This commit is contained in:
		
							
								
								
									
										55
									
								
								file-cost.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										55
									
								
								file-cost.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| #!/usr/bin/env python | ||||
|  | ||||
| import matplotlib | ||||
| matplotlib.use('SVG') | ||||
| import matplotlib.pyplot as plt | ||||
| import numpy as np | ||||
|  | ||||
| matplotlib.rc('font', family='sans-serif', size=11) | ||||
| matplotlib.rc('axes', titlesize='medium', labelsize='medium') | ||||
| matplotlib.rc('xtick', labelsize='small') | ||||
| matplotlib.rc('ytick', labelsize='small') | ||||
|  | ||||
| fig, ax = plt.subplots(figsize=(6, 3.5)) | ||||
| ax.set_title('File storage cost') | ||||
|  | ||||
| # multiplicative cost of inline files | ||||
| def inline_cost(n, B): | ||||
|     #return 4+n-n | ||||
|     return np.full_like(n, 4) | ||||
|  | ||||
| # multiplicative cost of ctz skip-list files | ||||
| def ctz_cost(n, B): | ||||
|     return (np.ceil(n/B)*B) / n | ||||
|  | ||||
| # combined multiplicative cost | ||||
| def file_cost(n, B): | ||||
|     return np.where(n < B/4, inline_cost(n, B), ctz_cost(n, B)) | ||||
|  | ||||
| t = np.arange(0.0, 80.0, 0.25) | ||||
| ax.plot(t, file_cost(t, 16)) | ||||
| t1 = np.arange(0.0, 16.0/4.0 + 0.5, 0.25) | ||||
| t2 = np.arange(16.0/4.0, 80.0, 0.25) | ||||
| ax.plot(t1, ctz_cost(t1, 16), color='C0', linestyle=(2.65, (3.65,1.65))) | ||||
| ax.plot(t2, inline_cost(t2, 16), color='C0', linestyle=(3.65, (3.65,1.65))) | ||||
|  | ||||
| ax.text(70.5, 4.15, 'inline file', size='small') | ||||
| ax.text(3.3, 5.85, 'ctz skip-list', rotation=-85, size='small') | ||||
|  | ||||
| ax.set_xlabel('file size') | ||||
| ax.set_xlim(0, 80) | ||||
| ax.set_ylabel('multiplicative cost') | ||||
| ax.set_ylim(0, 6) | ||||
|  | ||||
| xticks = np.arange(0, 80+1, 16) | ||||
| ax.set_xticks(xticks) | ||||
| ax.set_xticklabels(['%dKiB' % ((t*(4096/16))/1024) for t in xticks]) | ||||
| yticks = np.arange(0, 6+1, 2) | ||||
| ax.set_yticks(yticks) | ||||
| ax.set_yticklabels(['%dx' % t for t in yticks]) | ||||
|  | ||||
| ax.spines['right'].set_visible(False) | ||||
| ax.spines['top'].set_visible(False) | ||||
|  | ||||
| fig.tight_layout() | ||||
| plt.savefig('file-cost.svg', bbox_inches="tight") | ||||
							
								
								
									
										995
									
								
								file-cost.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										995
									
								
								file-cost.svg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,995 @@ | ||||
| <?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 (http://matplotlib.org/) --> | ||||
| <svg height="241.712285pt" version="1.1" viewBox="0 0 422.509804 241.712285" width="422.509804pt" 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 241.712285  | ||||
| L 422.509804 241.712285  | ||||
| L 422.509804 0  | ||||
| L 0 0  | ||||
| z | ||||
| " style="fill:#ffffff;"/> | ||||
|   </g> | ||||
|   <g id="axes_1"> | ||||
|    <g id="patch_2"> | ||||
|     <path d="M 40.099247 203.998281  | ||||
| L 402.059247 203.998281  | ||||
| L 402.059247 21.558281  | ||||
| L 40.099247 21.558281  | ||||
| z | ||||
| " style="fill:#ffffff;"/> | ||||
|    </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="mf543708c25" style="stroke:#000000;stroke-width:0.8;"/> | ||||
|       </defs> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="40.099247" xlink:href="#mf543708c25" y="203.998281"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_1"> | ||||
|       <!-- 0KiB --> | ||||
|       <defs> | ||||
|        <path d="M 31.78125 66.40625  | ||||
| Q 24.171875 66.40625 20.328125 58.90625  | ||||
| Q 16.5 51.421875 16.5 36.375  | ||||
| Q 16.5 21.390625 20.328125 13.890625  | ||||
| Q 24.171875 6.390625 31.78125 6.390625  | ||||
| Q 39.453125 6.390625 43.28125 13.890625  | ||||
| Q 47.125 21.390625 47.125 36.375  | ||||
| Q 47.125 51.421875 43.28125 58.90625  | ||||
| Q 39.453125 66.40625 31.78125 66.40625  | ||||
| z | ||||
| M 31.78125 74.21875  | ||||
| Q 44.046875 74.21875 50.515625 64.515625  | ||||
| Q 56.984375 54.828125 56.984375 36.375  | ||||
| Q 56.984375 17.96875 50.515625 8.265625  | ||||
| Q 44.046875 -1.421875 31.78125 -1.421875  | ||||
| Q 19.53125 -1.421875 13.0625 8.265625  | ||||
| Q 6.59375 17.96875 6.59375 36.375  | ||||
| Q 6.59375 54.828125 13.0625 64.515625  | ||||
| Q 19.53125 74.21875 31.78125 74.21875  | ||||
| z | ||||
| " id="DejaVuSans-30"/> | ||||
|        <path d="M 9.8125 72.90625  | ||||
| L 19.671875 72.90625  | ||||
| L 19.671875 42.09375  | ||||
| L 52.390625 72.90625  | ||||
| L 65.09375 72.90625  | ||||
| L 28.90625 38.921875  | ||||
| L 67.671875 0  | ||||
| L 54.6875 0  | ||||
| L 19.671875 35.109375  | ||||
| L 19.671875 0  | ||||
| L 9.8125 0  | ||||
| z | ||||
| " id="DejaVuSans-4b"/> | ||||
|        <path d="M 9.421875 54.6875  | ||||
| L 18.40625 54.6875  | ||||
| L 18.40625 0  | ||||
| L 9.421875 0  | ||||
| z | ||||
| M 9.421875 75.984375  | ||||
| L 18.40625 75.984375  | ||||
| L 18.40625 64.59375  | ||||
| L 9.421875 64.59375  | ||||
| z | ||||
| " id="DejaVuSans-69"/> | ||||
|        <path d="M 19.671875 34.8125  | ||||
| L 19.671875 8.109375  | ||||
| L 35.5 8.109375  | ||||
| Q 43.453125 8.109375 47.28125 11.40625  | ||||
| Q 51.125 14.703125 51.125 21.484375  | ||||
| Q 51.125 28.328125 47.28125 31.5625  | ||||
| Q 43.453125 34.8125 35.5 34.8125  | ||||
| z | ||||
| M 19.671875 64.796875  | ||||
| L 19.671875 42.828125  | ||||
| L 34.28125 42.828125  | ||||
| Q 41.5 42.828125 45.03125 45.53125  | ||||
| Q 48.578125 48.25 48.578125 53.8125  | ||||
| Q 48.578125 59.328125 45.03125 62.0625  | ||||
| Q 41.5 64.796875 34.28125 64.796875  | ||||
| z | ||||
| M 9.8125 72.90625  | ||||
| L 35.015625 72.90625  | ||||
| Q 46.296875 72.90625 52.390625 68.21875  | ||||
| Q 58.5 63.53125 58.5 54.890625  | ||||
| Q 58.5 48.1875 55.375 44.234375  | ||||
| Q 52.25 40.28125 46.1875 39.3125  | ||||
| Q 53.46875 37.75 57.5 32.78125  | ||||
| Q 61.53125 27.828125 61.53125 20.40625  | ||||
| Q 61.53125 10.640625 54.890625 5.3125  | ||||
| Q 48.25 0 35.984375 0  | ||||
| L 9.8125 0  | ||||
| z | ||||
| " id="DejaVuSans-42"/> | ||||
|       </defs> | ||||
|       <g transform="translate(29.763669 217.96073)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-30"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-4b"/> | ||||
|        <use x="129.199219" xlink:href="#DejaVuSans-69"/> | ||||
|        <use x="156.982422" xlink:href="#DejaVuSans-42"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="xtick_2"> | ||||
|      <g id="line2d_2"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="112.491247" xlink:href="#mf543708c25" y="203.998281"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_2"> | ||||
|       <!-- 4KiB --> | ||||
|       <defs> | ||||
|        <path d="M 37.796875 64.3125  | ||||
| L 12.890625 25.390625  | ||||
| L 37.796875 25.390625  | ||||
| z | ||||
| M 35.203125 72.90625  | ||||
| L 47.609375 72.90625  | ||||
| L 47.609375 25.390625  | ||||
| L 58.015625 25.390625  | ||||
| L 58.015625 17.1875  | ||||
| L 47.609375 17.1875  | ||||
| L 47.609375 0  | ||||
| L 37.796875 0  | ||||
| L 37.796875 17.1875  | ||||
| L 4.890625 17.1875  | ||||
| L 4.890625 26.703125  | ||||
| z | ||||
| " id="DejaVuSans-34"/> | ||||
|       </defs> | ||||
|       <g transform="translate(102.155669 217.96073)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-34"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-4b"/> | ||||
|        <use x="129.199219" xlink:href="#DejaVuSans-69"/> | ||||
|        <use x="156.982422" xlink:href="#DejaVuSans-42"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="xtick_3"> | ||||
|      <g id="line2d_3"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="184.883247" xlink:href="#mf543708c25" y="203.998281"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_3"> | ||||
|       <!-- 8KiB --> | ||||
|       <defs> | ||||
|        <path d="M 31.78125 34.625  | ||||
| Q 24.75 34.625 20.71875 30.859375  | ||||
| Q 16.703125 27.09375 16.703125 20.515625  | ||||
| Q 16.703125 13.921875 20.71875 10.15625  | ||||
| Q 24.75 6.390625 31.78125 6.390625  | ||||
| Q 38.8125 6.390625 42.859375 10.171875  | ||||
| Q 46.921875 13.96875 46.921875 20.515625  | ||||
| Q 46.921875 27.09375 42.890625 30.859375  | ||||
| Q 38.875 34.625 31.78125 34.625  | ||||
| z | ||||
| M 21.921875 38.8125  | ||||
| Q 15.578125 40.375 12.03125 44.71875  | ||||
| Q 8.5 49.078125 8.5 55.328125  | ||||
| Q 8.5 64.0625 14.71875 69.140625  | ||||
| Q 20.953125 74.21875 31.78125 74.21875  | ||||
| Q 42.671875 74.21875 48.875 69.140625  | ||||
| Q 55.078125 64.0625 55.078125 55.328125  | ||||
| Q 55.078125 49.078125 51.53125 44.71875  | ||||
| Q 48 40.375 41.703125 38.8125  | ||||
| Q 48.828125 37.15625 52.796875 32.3125  | ||||
| Q 56.78125 27.484375 56.78125 20.515625  | ||||
| Q 56.78125 9.90625 50.3125 4.234375  | ||||
| Q 43.84375 -1.421875 31.78125 -1.421875  | ||||
| Q 19.734375 -1.421875 13.25 4.234375  | ||||
| Q 6.78125 9.90625 6.78125 20.515625  | ||||
| Q 6.78125 27.484375 10.78125 32.3125  | ||||
| Q 14.796875 37.15625 21.921875 38.8125  | ||||
| z | ||||
| M 18.3125 54.390625  | ||||
| Q 18.3125 48.734375 21.84375 45.5625  | ||||
| Q 25.390625 42.390625 31.78125 42.390625  | ||||
| Q 38.140625 42.390625 41.71875 45.5625  | ||||
| Q 45.3125 48.734375 45.3125 54.390625  | ||||
| Q 45.3125 60.0625 41.71875 63.234375  | ||||
| Q 38.140625 66.40625 31.78125 66.40625  | ||||
| Q 25.390625 66.40625 21.84375 63.234375  | ||||
| Q 18.3125 60.0625 18.3125 54.390625  | ||||
| z | ||||
| " id="DejaVuSans-38"/> | ||||
|       </defs> | ||||
|       <g transform="translate(174.547669 217.96073)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-38"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-4b"/> | ||||
|        <use x="129.199219" xlink:href="#DejaVuSans-69"/> | ||||
|        <use x="156.982422" xlink:href="#DejaVuSans-42"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="xtick_4"> | ||||
|      <g id="line2d_4"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="257.275247" xlink:href="#mf543708c25" y="203.998281"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_4"> | ||||
|       <!-- 12KiB --> | ||||
|       <defs> | ||||
|        <path d="M 12.40625 8.296875  | ||||
| L 28.515625 8.296875  | ||||
| L 28.515625 63.921875  | ||||
| L 10.984375 60.40625  | ||||
| L 10.984375 69.390625  | ||||
| L 28.421875 72.90625  | ||||
| L 38.28125 72.90625  | ||||
| L 38.28125 8.296875  | ||||
| L 54.390625 8.296875  | ||||
| L 54.390625 0  | ||||
| L 12.40625 0  | ||||
| z | ||||
| " id="DejaVuSans-31"/> | ||||
|        <path d="M 19.1875 8.296875  | ||||
| L 53.609375 8.296875  | ||||
| L 53.609375 0  | ||||
| L 7.328125 0  | ||||
| L 7.328125 8.296875  | ||||
| Q 12.9375 14.109375 22.625 23.890625  | ||||
| Q 32.328125 33.6875 34.8125 36.53125  | ||||
| Q 39.546875 41.84375 41.421875 45.53125  | ||||
| Q 43.3125 49.21875 43.3125 52.78125  | ||||
| Q 43.3125 58.59375 39.234375 62.25  | ||||
| Q 35.15625 65.921875 28.609375 65.921875  | ||||
| Q 23.96875 65.921875 18.8125 64.3125  | ||||
| Q 13.671875 62.703125 7.8125 59.421875  | ||||
| L 7.8125 69.390625  | ||||
| Q 13.765625 71.78125 18.9375 73  | ||||
| Q 24.125 74.21875 28.421875 74.21875  | ||||
| Q 39.75 74.21875 46.484375 68.546875  | ||||
| Q 53.21875 62.890625 53.21875 53.421875  | ||||
| Q 53.21875 48.921875 51.53125 44.890625  | ||||
| Q 49.859375 40.875 45.40625 35.40625  | ||||
| Q 44.1875 33.984375 37.640625 27.21875  | ||||
| Q 31.109375 20.453125 19.1875 8.296875  | ||||
| z | ||||
| " id="DejaVuSans-32"/> | ||||
|       </defs> | ||||
|       <g transform="translate(244.02469 217.96073)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-31"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-32"/> | ||||
|        <use x="127.246094" xlink:href="#DejaVuSans-4b"/> | ||||
|        <use x="192.822266" xlink:href="#DejaVuSans-69"/> | ||||
|        <use x="220.605469" xlink:href="#DejaVuSans-42"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="xtick_5"> | ||||
|      <g id="line2d_5"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="329.667247" xlink:href="#mf543708c25" y="203.998281"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_5"> | ||||
|       <!-- 16KiB --> | ||||
|       <defs> | ||||
|        <path d="M 33.015625 40.375  | ||||
| Q 26.375 40.375 22.484375 35.828125  | ||||
| Q 18.609375 31.296875 18.609375 23.390625  | ||||
| Q 18.609375 15.53125 22.484375 10.953125  | ||||
| Q 26.375 6.390625 33.015625 6.390625  | ||||
| Q 39.65625 6.390625 43.53125 10.953125  | ||||
| Q 47.40625 15.53125 47.40625 23.390625  | ||||
| Q 47.40625 31.296875 43.53125 35.828125  | ||||
| Q 39.65625 40.375 33.015625 40.375  | ||||
| z | ||||
| M 52.59375 71.296875  | ||||
| L 52.59375 62.3125  | ||||
| Q 48.875 64.0625 45.09375 64.984375  | ||||
| Q 41.3125 65.921875 37.59375 65.921875  | ||||
| Q 27.828125 65.921875 22.671875 59.328125  | ||||
| Q 17.53125 52.734375 16.796875 39.40625  | ||||
| Q 19.671875 43.65625 24.015625 45.921875  | ||||
| Q 28.375 48.1875 33.59375 48.1875  | ||||
| Q 44.578125 48.1875 50.953125 41.515625  | ||||
| Q 57.328125 34.859375 57.328125 23.390625  | ||||
| Q 57.328125 12.15625 50.6875 5.359375  | ||||
| Q 44.046875 -1.421875 33.015625 -1.421875  | ||||
| Q 20.359375 -1.421875 13.671875 8.265625  | ||||
| Q 6.984375 17.96875 6.984375 36.375  | ||||
| Q 6.984375 53.65625 15.1875 63.9375  | ||||
| Q 23.390625 74.21875 37.203125 74.21875  | ||||
| Q 40.921875 74.21875 44.703125 73.484375  | ||||
| Q 48.484375 72.75 52.59375 71.296875  | ||||
| z | ||||
| " id="DejaVuSans-36"/> | ||||
|       </defs> | ||||
|       <g transform="translate(316.41669 217.96073)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-31"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-36"/> | ||||
|        <use x="127.246094" xlink:href="#DejaVuSans-4b"/> | ||||
|        <use x="192.822266" xlink:href="#DejaVuSans-69"/> | ||||
|        <use x="220.605469" xlink:href="#DejaVuSans-42"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="xtick_6"> | ||||
|      <g id="line2d_6"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="402.059247" xlink:href="#mf543708c25" y="203.998281"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_6"> | ||||
|       <!-- 20KiB --> | ||||
|       <g transform="translate(388.80869 217.96073)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-32"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-30"/> | ||||
|        <use x="127.246094" xlink:href="#DejaVuSans-4b"/> | ||||
|        <use x="192.822266" xlink:href="#DejaVuSans-69"/> | ||||
|        <use x="220.605469" xlink:href="#DejaVuSans-42"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="text_7"> | ||||
|      <!-- file size --> | ||||
|      <defs> | ||||
|       <path d="M 37.109375 75.984375  | ||||
| L 37.109375 68.5  | ||||
| L 28.515625 68.5  | ||||
| Q 23.6875 68.5 21.796875 66.546875  | ||||
| Q 19.921875 64.59375 19.921875 59.515625  | ||||
| L 19.921875 54.6875  | ||||
| L 34.71875 54.6875  | ||||
| L 34.71875 47.703125  | ||||
| L 19.921875 47.703125  | ||||
| L 19.921875 0  | ||||
| L 10.890625 0  | ||||
| L 10.890625 47.703125  | ||||
| L 2.296875 47.703125  | ||||
| L 2.296875 54.6875  | ||||
| L 10.890625 54.6875  | ||||
| L 10.890625 58.5  | ||||
| Q 10.890625 67.625 15.140625 71.796875  | ||||
| Q 19.390625 75.984375 28.609375 75.984375  | ||||
| z | ||||
| " id="DejaVuSans-66"/> | ||||
|       <path d="M 9.421875 75.984375  | ||||
| L 18.40625 75.984375  | ||||
| L 18.40625 0  | ||||
| L 9.421875 0  | ||||
| z | ||||
| " id="DejaVuSans-6c"/> | ||||
|       <path d="M 56.203125 29.59375  | ||||
| L 56.203125 25.203125  | ||||
| L 14.890625 25.203125  | ||||
| Q 15.484375 15.921875 20.484375 11.0625  | ||||
| Q 25.484375 6.203125 34.421875 6.203125  | ||||
| Q 39.59375 6.203125 44.453125 7.46875  | ||||
| Q 49.3125 8.734375 54.109375 11.28125  | ||||
| L 54.109375 2.78125  | ||||
| Q 49.265625 0.734375 44.1875 -0.34375  | ||||
| Q 39.109375 -1.421875 33.890625 -1.421875  | ||||
| Q 20.796875 -1.421875 13.15625 6.1875  | ||||
| Q 5.515625 13.8125 5.515625 26.8125  | ||||
| Q 5.515625 40.234375 12.765625 48.109375  | ||||
| Q 20.015625 56 32.328125 56  | ||||
| Q 43.359375 56 49.78125 48.890625  | ||||
| Q 56.203125 41.796875 56.203125 29.59375  | ||||
| z | ||||
| M 47.21875 32.234375  | ||||
| Q 47.125 39.59375 43.09375 43.984375  | ||||
| Q 39.0625 48.390625 32.421875 48.390625  | ||||
| Q 24.90625 48.390625 20.390625 44.140625  | ||||
| Q 15.875 39.890625 15.1875 32.171875  | ||||
| z | ||||
| " id="DejaVuSans-65"/> | ||||
|       <path id="DejaVuSans-20"/> | ||||
|       <path d="M 44.28125 53.078125  | ||||
| L 44.28125 44.578125  | ||||
| Q 40.484375 46.53125 36.375 47.5  | ||||
| Q 32.28125 48.484375 27.875 48.484375  | ||||
| Q 21.1875 48.484375 17.84375 46.4375  | ||||
| Q 14.5 44.390625 14.5 40.28125  | ||||
| Q 14.5 37.15625 16.890625 35.375  | ||||
| Q 19.28125 33.59375 26.515625 31.984375  | ||||
| L 29.59375 31.296875  | ||||
| Q 39.15625 29.25 43.1875 25.515625  | ||||
| Q 47.21875 21.78125 47.21875 15.09375  | ||||
| Q 47.21875 7.46875 41.1875 3.015625  | ||||
| Q 35.15625 -1.421875 24.609375 -1.421875  | ||||
| Q 20.21875 -1.421875 15.453125 -0.5625  | ||||
| Q 10.6875 0.296875 5.421875 2  | ||||
| L 5.421875 11.28125  | ||||
| Q 10.40625 8.6875 15.234375 7.390625  | ||||
| Q 20.0625 6.109375 24.8125 6.109375  | ||||
| Q 31.15625 6.109375 34.5625 8.28125  | ||||
| Q 37.984375 10.453125 37.984375 14.40625  | ||||
| Q 37.984375 18.0625 35.515625 20.015625  | ||||
| Q 33.0625 21.96875 24.703125 23.78125  | ||||
| L 21.578125 24.515625  | ||||
| Q 13.234375 26.265625 9.515625 29.90625  | ||||
| Q 5.8125 33.546875 5.8125 39.890625  | ||||
| Q 5.8125 47.609375 11.28125 51.796875  | ||||
| Q 16.75 56 26.8125 56  | ||||
| Q 31.78125 56 36.171875 55.265625  | ||||
| Q 40.578125 54.546875 44.28125 53.078125  | ||||
| z | ||||
| " id="DejaVuSans-73"/> | ||||
|       <path d="M 5.515625 54.6875  | ||||
| L 48.1875 54.6875  | ||||
| L 48.1875 46.484375  | ||||
| L 14.40625 7.171875  | ||||
| L 48.1875 7.171875  | ||||
| L 48.1875 0  | ||||
| L 4.296875 0  | ||||
| L 4.296875 8.203125  | ||||
| L 38.09375 47.515625  | ||||
| L 5.515625 47.515625  | ||||
| z | ||||
| " id="DejaVuSans-7a"/> | ||||
|      </defs> | ||||
|      <g transform="translate(200.290966 232.224628)scale(0.11 -0.11)"> | ||||
|       <use xlink:href="#DejaVuSans-66"/> | ||||
|       <use x="35.205078" xlink:href="#DejaVuSans-69"/> | ||||
|       <use x="62.988281" xlink:href="#DejaVuSans-6c"/> | ||||
|       <use x="90.771484" xlink:href="#DejaVuSans-65"/> | ||||
|       <use x="152.294922" xlink:href="#DejaVuSans-20"/> | ||||
|       <use x="184.082031" xlink:href="#DejaVuSans-73"/> | ||||
|       <use x="236.181641" xlink:href="#DejaVuSans-69"/> | ||||
|       <use x="263.964844" xlink:href="#DejaVuSans-7a"/> | ||||
|       <use x="316.455078" xlink:href="#DejaVuSans-65"/> | ||||
|      </g> | ||||
|     </g> | ||||
|    </g> | ||||
|    <g id="matplotlib.axis_2"> | ||||
|     <g id="ytick_1"> | ||||
|      <g id="line2d_7"> | ||||
|       <defs> | ||||
|        <path d="M 0 0  | ||||
| L -3.5 0  | ||||
| " id="medd6d3c8aa" style="stroke:#000000;stroke-width:0.8;"/> | ||||
|       </defs> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="40.099247" xlink:href="#medd6d3c8aa" y="203.998281"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_8"> | ||||
|       <!-- 0x --> | ||||
|       <defs> | ||||
|        <path d="M 54.890625 54.6875  | ||||
| L 35.109375 28.078125  | ||||
| L 55.90625 0  | ||||
| L 45.3125 0  | ||||
| L 29.390625 21.484375  | ||||
| L 13.484375 0  | ||||
| L 2.875 0  | ||||
| L 24.125 28.609375  | ||||
| L 4.6875 54.6875  | ||||
| L 15.28125 54.6875  | ||||
| L 29.78125 35.203125  | ||||
| L 44.28125 54.6875  | ||||
| z | ||||
| " id="DejaVuSans-78"/> | ||||
|       </defs> | ||||
|       <g transform="translate(21.845938 207.479505)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-30"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-78"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="ytick_2"> | ||||
|      <g id="line2d_8"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="40.099247" xlink:href="#medd6d3c8aa" y="143.184948"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_9"> | ||||
|       <!-- 2x --> | ||||
|       <g transform="translate(21.845938 146.666172)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-32"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-78"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="ytick_3"> | ||||
|      <g id="line2d_9"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="40.099247" xlink:href="#medd6d3c8aa" y="82.371615"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_10"> | ||||
|       <!-- 4x --> | ||||
|       <g transform="translate(21.845938 85.852839)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-34"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-78"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="ytick_4"> | ||||
|      <g id="line2d_10"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="40.099247" xlink:href="#medd6d3c8aa" y="21.558281"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_11"> | ||||
|       <!-- 6x --> | ||||
|       <g transform="translate(21.845938 25.039505)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-36"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-78"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="text_12"> | ||||
|      <!-- multiplicative cost --> | ||||
|      <defs> | ||||
|       <path d="M 52 44.1875  | ||||
| Q 55.375 50.25 60.0625 53.125  | ||||
| Q 64.75 56 71.09375 56  | ||||
| Q 79.640625 56 84.28125 50.015625  | ||||
| Q 88.921875 44.046875 88.921875 33.015625  | ||||
| L 88.921875 0  | ||||
| L 79.890625 0  | ||||
| L 79.890625 32.71875  | ||||
| Q 79.890625 40.578125 77.09375 44.375  | ||||
| Q 74.3125 48.1875 68.609375 48.1875  | ||||
| Q 61.625 48.1875 57.5625 43.546875  | ||||
| Q 53.515625 38.921875 53.515625 30.90625  | ||||
| L 53.515625 0  | ||||
| L 44.484375 0  | ||||
| L 44.484375 32.71875  | ||||
| Q 44.484375 40.625 41.703125 44.40625  | ||||
| Q 38.921875 48.1875 33.109375 48.1875  | ||||
| Q 26.21875 48.1875 22.15625 43.53125  | ||||
| Q 18.109375 38.875 18.109375 30.90625  | ||||
| L 18.109375 0  | ||||
| L 9.078125 0  | ||||
| L 9.078125 54.6875  | ||||
| L 18.109375 54.6875  | ||||
| L 18.109375 46.1875  | ||||
| Q 21.1875 51.21875 25.484375 53.609375  | ||||
| Q 29.78125 56 35.6875 56  | ||||
| Q 41.65625 56 45.828125 52.96875  | ||||
| Q 50 49.953125 52 44.1875  | ||||
| z | ||||
| " id="DejaVuSans-6d"/> | ||||
|       <path d="M 8.5 21.578125  | ||||
| L 8.5 54.6875  | ||||
| L 17.484375 54.6875  | ||||
| L 17.484375 21.921875  | ||||
| Q 17.484375 14.15625 20.5 10.265625  | ||||
| Q 23.53125 6.390625 29.59375 6.390625  | ||||
| Q 36.859375 6.390625 41.078125 11.03125  | ||||
| Q 45.3125 15.671875 45.3125 23.6875  | ||||
| L 45.3125 54.6875  | ||||
| L 54.296875 54.6875  | ||||
| L 54.296875 0  | ||||
| L 45.3125 0  | ||||
| L 45.3125 8.40625  | ||||
| Q 42.046875 3.421875 37.71875 1  | ||||
| Q 33.40625 -1.421875 27.6875 -1.421875  | ||||
| Q 18.265625 -1.421875 13.375 4.4375  | ||||
| Q 8.5 10.296875 8.5 21.578125  | ||||
| z | ||||
| M 31.109375 56  | ||||
| z | ||||
| " id="DejaVuSans-75"/> | ||||
|       <path d="M 18.3125 70.21875  | ||||
| L 18.3125 54.6875  | ||||
| L 36.8125 54.6875  | ||||
| L 36.8125 47.703125  | ||||
| L 18.3125 47.703125  | ||||
| L 18.3125 18.015625  | ||||
| Q 18.3125 11.328125 20.140625 9.421875  | ||||
| Q 21.96875 7.515625 27.59375 7.515625  | ||||
| L 36.8125 7.515625  | ||||
| L 36.8125 0  | ||||
| L 27.59375 0  | ||||
| Q 17.1875 0 13.234375 3.875  | ||||
| Q 9.28125 7.765625 9.28125 18.015625  | ||||
| L 9.28125 47.703125  | ||||
| L 2.6875 47.703125  | ||||
| L 2.6875 54.6875  | ||||
| L 9.28125 54.6875  | ||||
| L 9.28125 70.21875  | ||||
| z | ||||
| " id="DejaVuSans-74"/> | ||||
|       <path d="M 18.109375 8.203125  | ||||
| L 18.109375 -20.796875  | ||||
| L 9.078125 -20.796875  | ||||
| L 9.078125 54.6875  | ||||
| L 18.109375 54.6875  | ||||
| L 18.109375 46.390625  | ||||
| Q 20.953125 51.265625 25.265625 53.625  | ||||
| Q 29.59375 56 35.59375 56  | ||||
| Q 45.5625 56 51.78125 48.09375  | ||||
| Q 58.015625 40.1875 58.015625 27.296875  | ||||
| Q 58.015625 14.40625 51.78125 6.484375  | ||||
| Q 45.5625 -1.421875 35.59375 -1.421875  | ||||
| Q 29.59375 -1.421875 25.265625 0.953125  | ||||
| Q 20.953125 3.328125 18.109375 8.203125  | ||||
| z | ||||
| M 48.6875 27.296875  | ||||
| Q 48.6875 37.203125 44.609375 42.84375  | ||||
| Q 40.53125 48.484375 33.40625 48.484375  | ||||
| Q 26.265625 48.484375 22.1875 42.84375  | ||||
| Q 18.109375 37.203125 18.109375 27.296875  | ||||
| Q 18.109375 17.390625 22.1875 11.75  | ||||
| Q 26.265625 6.109375 33.40625 6.109375  | ||||
| Q 40.53125 6.109375 44.609375 11.75  | ||||
| Q 48.6875 17.390625 48.6875 27.296875  | ||||
| z | ||||
| " id="DejaVuSans-70"/> | ||||
|       <path d="M 48.78125 52.59375  | ||||
| L 48.78125 44.1875  | ||||
| Q 44.96875 46.296875 41.140625 47.34375  | ||||
| Q 37.3125 48.390625 33.40625 48.390625  | ||||
| Q 24.65625 48.390625 19.8125 42.84375  | ||||
| Q 14.984375 37.3125 14.984375 27.296875  | ||||
| Q 14.984375 17.28125 19.8125 11.734375  | ||||
| Q 24.65625 6.203125 33.40625 6.203125  | ||||
| Q 37.3125 6.203125 41.140625 7.25  | ||||
| Q 44.96875 8.296875 48.78125 10.40625  | ||||
| L 48.78125 2.09375  | ||||
| Q 45.015625 0.34375 40.984375 -0.53125  | ||||
| Q 36.96875 -1.421875 32.421875 -1.421875  | ||||
| Q 20.0625 -1.421875 12.78125 6.34375  | ||||
| Q 5.515625 14.109375 5.515625 27.296875  | ||||
| Q 5.515625 40.671875 12.859375 48.328125  | ||||
| Q 20.21875 56 33.015625 56  | ||||
| Q 37.15625 56 41.109375 55.140625  | ||||
| Q 45.0625 54.296875 48.78125 52.59375  | ||||
| z | ||||
| " id="DejaVuSans-63"/> | ||||
|       <path d="M 34.28125 27.484375  | ||||
| Q 23.390625 27.484375 19.1875 25  | ||||
| Q 14.984375 22.515625 14.984375 16.5  | ||||
| Q 14.984375 11.71875 18.140625 8.90625  | ||||
| Q 21.296875 6.109375 26.703125 6.109375  | ||||
| Q 34.1875 6.109375 38.703125 11.40625  | ||||
| Q 43.21875 16.703125 43.21875 25.484375  | ||||
| L 43.21875 27.484375  | ||||
| z | ||||
| M 52.203125 31.203125  | ||||
| L 52.203125 0  | ||||
| L 43.21875 0  | ||||
| L 43.21875 8.296875  | ||||
| Q 40.140625 3.328125 35.546875 0.953125  | ||||
| Q 30.953125 -1.421875 24.3125 -1.421875  | ||||
| Q 15.921875 -1.421875 10.953125 3.296875  | ||||
| Q 6 8.015625 6 15.921875  | ||||
| Q 6 25.140625 12.171875 29.828125  | ||||
| Q 18.359375 34.515625 30.609375 34.515625  | ||||
| L 43.21875 34.515625  | ||||
| L 43.21875 35.40625  | ||||
| Q 43.21875 41.609375 39.140625 45  | ||||
| Q 35.0625 48.390625 27.6875 48.390625  | ||||
| Q 23 48.390625 18.546875 47.265625  | ||||
| Q 14.109375 46.140625 10.015625 43.890625  | ||||
| L 10.015625 52.203125  | ||||
| Q 14.9375 54.109375 19.578125 55.046875  | ||||
| Q 24.21875 56 28.609375 56  | ||||
| Q 40.484375 56 46.34375 49.84375  | ||||
| Q 52.203125 43.703125 52.203125 31.203125  | ||||
| z | ||||
| " id="DejaVuSans-61"/> | ||||
|       <path d="M 2.984375 54.6875  | ||||
| L 12.5 54.6875  | ||||
| L 29.59375 8.796875  | ||||
| L 46.6875 54.6875  | ||||
| L 56.203125 54.6875  | ||||
| L 35.6875 0  | ||||
| L 23.484375 0  | ||||
| z | ||||
| " id="DejaVuSans-76"/> | ||||
|       <path d="M 30.609375 48.390625  | ||||
| Q 23.390625 48.390625 19.1875 42.75  | ||||
| Q 14.984375 37.109375 14.984375 27.296875  | ||||
| Q 14.984375 17.484375 19.15625 11.84375  | ||||
| Q 23.34375 6.203125 30.609375 6.203125  | ||||
| Q 37.796875 6.203125 41.984375 11.859375  | ||||
| Q 46.1875 17.53125 46.1875 27.296875  | ||||
| Q 46.1875 37.015625 41.984375 42.703125  | ||||
| Q 37.796875 48.390625 30.609375 48.390625  | ||||
| z | ||||
| M 30.609375 56  | ||||
| Q 42.328125 56 49.015625 48.375  | ||||
| Q 55.71875 40.765625 55.71875 27.296875  | ||||
| Q 55.71875 13.875 49.015625 6.21875  | ||||
| Q 42.328125 -1.421875 30.609375 -1.421875  | ||||
| Q 18.84375 -1.421875 12.171875 6.21875  | ||||
| Q 5.515625 13.875 5.515625 27.296875  | ||||
| Q 5.515625 40.765625 12.171875 48.375  | ||||
| Q 18.84375 56 30.609375 56  | ||||
| z | ||||
| " id="DejaVuSans-6f"/> | ||||
|      </defs> | ||||
|      <g transform="translate(15.558281 163.257969)rotate(-90)scale(0.11 -0.11)"> | ||||
|       <use xlink:href="#DejaVuSans-6d"/> | ||||
|       <use x="97.412109" xlink:href="#DejaVuSans-75"/> | ||||
|       <use x="160.791016" xlink:href="#DejaVuSans-6c"/> | ||||
|       <use x="188.574219" xlink:href="#DejaVuSans-74"/> | ||||
|       <use x="227.783203" xlink:href="#DejaVuSans-69"/> | ||||
|       <use x="255.566406" xlink:href="#DejaVuSans-70"/> | ||||
|       <use x="319.042969" xlink:href="#DejaVuSans-6c"/> | ||||
|       <use x="346.826172" xlink:href="#DejaVuSans-69"/> | ||||
|       <use x="374.609375" xlink:href="#DejaVuSans-63"/> | ||||
|       <use x="429.589844" xlink:href="#DejaVuSans-61"/> | ||||
|       <use x="490.869141" xlink:href="#DejaVuSans-74"/> | ||||
|       <use x="530.078125" xlink:href="#DejaVuSans-69"/> | ||||
|       <use x="557.861328" xlink:href="#DejaVuSans-76"/> | ||||
|       <use x="617.041016" xlink:href="#DejaVuSans-65"/> | ||||
|       <use x="678.564453" xlink:href="#DejaVuSans-20"/> | ||||
|       <use x="710.351562" xlink:href="#DejaVuSans-63"/> | ||||
|       <use x="765.332031" xlink:href="#DejaVuSans-6f"/> | ||||
|       <use x="826.513672" xlink:href="#DejaVuSans-73"/> | ||||
|       <use x="878.613281" xlink:href="#DejaVuSans-74"/> | ||||
|      </g> | ||||
|     </g> | ||||
|    </g> | ||||
|    <g id="line2d_11"> | ||||
|     <path clip-path="url(#pdf50752646)" d="M 40.099247 82.371615  | ||||
| L 58.197247 82.371615  | ||||
| L 59.328372 89.526124  | ||||
| L 60.459497 95.885689  | ||||
| L 62.721747 106.696948  | ||||
| L 64.983997 115.542524  | ||||
| L 67.246247 122.913837  | ||||
| L 69.508497 129.151102  | ||||
| L 71.770747 134.497329  | ||||
| L 74.032997 139.130726  | ||||
| L 76.295247 143.184948  | ||||
| L 78.557497 146.762203  | ||||
| L 80.819747 149.941985  | ||||
| L 83.081997 152.787053  | ||||
| L 85.344247 155.347615  | ||||
| L 87.606497 157.664313  | ||||
| L 90.999872 160.753244  | ||||
| L 94.393247 163.456059  | ||||
| L 97.786622 165.840896  | ||||
| L 101.179997 167.96075  | ||||
| L 104.573372 169.857463  | ||||
| L 109.097872 172.096205  | ||||
| L 112.491247 173.591615  | ||||
| L 113.622372 144.120538  | ||||
| L 117.015747 146.762203  | ||||
| L 120.409122 149.180629  | ||||
| L 124.933622 152.104237  | ||||
| L 129.458122 154.731783  | ||||
| L 133.982622 157.106072  | ||||
| L 138.507122 159.262036  | ||||
| L 144.162747 161.693354  | ||||
| L 149.818372 163.87402  | ||||
| L 155.473997 165.840896  | ||||
| L 162.260747 167.96075  | ||||
| L 169.047497 169.857463  | ||||
| L 176.965372 171.832551  | ||||
| L 184.883247 173.591615  | ||||
| L 186.014372 158.741847  | ||||
| L 193.932247 161.071222  | ||||
| L 201.850122 163.172547  | ||||
| L 210.899122 165.3355  | ||||
| L 219.948122 167.280797  | ||||
| L 230.128247 169.247805  | ||||
| L 241.439497 171.200079  | ||||
| L 253.881872 173.108969  | ||||
| L 257.275247 173.591615  | ||||
| L 258.406372 163.666122  | ||||
| L 270.848747 165.840896  | ||||
| L 283.291122 167.793134  | ||||
| L 296.864622 169.707062  | ||||
| L 311.569247 171.564503  | ||||
| L 328.536122 173.472373  | ||||
| L 329.667247 173.591615  | ||||
| L 330.798372 166.13784  | ||||
| L 346.634122 168.09373  | ||||
| L 364.732122 170.095378  | ||||
| L 383.961247 171.991264  | ||||
| L 400.928122 173.496296  | ||||
| L 400.928122 173.496296  | ||||
| " style="fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;"/> | ||||
|    </g> | ||||
|    <g id="line2d_12"> | ||||
|     <path clip-path="url(#pdf50752646)" d="M 50.866678 -1  | ||||
| L 51.410497 9.395615  | ||||
| L 52.541622 27.086766  | ||||
| L 53.672747 41.829392  | ||||
| L 54.803872 54.303922  | ||||
| L 55.934997 64.996376  | ||||
| L 57.066122 74.26317  | ||||
| L 58.197247 82.371615  | ||||
| L 59.328372 89.526124  | ||||
| " style="fill:none;stroke:#1f77b4;stroke-dasharray:5.475,2.475;stroke-dashoffset:3.975;stroke-width:1.5;"/> | ||||
|    </g> | ||||
|    <g id="line2d_13"> | ||||
|     <path clip-path="url(#pdf50752646)" d="M 58.197247 82.371615  | ||||
| L 400.928122 82.371615  | ||||
| L 400.928122 82.371615  | ||||
| " style="fill:none;stroke:#1f77b4;stroke-dasharray:5.475,2.475;stroke-dashoffset:5.475;stroke-width:1.5;"/> | ||||
|    </g> | ||||
|    <g id="patch_3"> | ||||
|     <path d="M 40.099247 203.998281  | ||||
| L 40.099247 21.558281  | ||||
| " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> | ||||
|    </g> | ||||
|    <g id="patch_4"> | ||||
|     <path d="M 40.099247 203.998281  | ||||
| L 402.059247 203.998281  | ||||
| " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> | ||||
|    </g> | ||||
|    <g id="text_13"> | ||||
|     <!-- inline file --> | ||||
|     <defs> | ||||
|      <path d="M 54.890625 33.015625  | ||||
| L 54.890625 0  | ||||
| L 45.90625 0  | ||||
| L 45.90625 32.71875  | ||||
| Q 45.90625 40.484375 42.875 44.328125  | ||||
| Q 39.84375 48.1875 33.796875 48.1875  | ||||
| Q 26.515625 48.1875 22.3125 43.546875  | ||||
| Q 18.109375 38.921875 18.109375 30.90625  | ||||
| L 18.109375 0  | ||||
| L 9.078125 0  | ||||
| L 9.078125 54.6875  | ||||
| L 18.109375 54.6875  | ||||
| L 18.109375 46.1875  | ||||
| Q 21.34375 51.125 25.703125 53.5625  | ||||
| Q 30.078125 56 35.796875 56  | ||||
| Q 45.21875 56 50.046875 50.171875  | ||||
| Q 54.890625 44.34375 54.890625 33.015625  | ||||
| z | ||||
| " id="DejaVuSans-6e"/> | ||||
|     </defs> | ||||
|     <g transform="translate(359.076497 77.810615)scale(0.09163 -0.09163)"> | ||||
|      <use xlink:href="#DejaVuSans-69"/> | ||||
|      <use x="27.783203" xlink:href="#DejaVuSans-6e"/> | ||||
|      <use x="91.162109" xlink:href="#DejaVuSans-6c"/> | ||||
|      <use x="118.945312" xlink:href="#DejaVuSans-69"/> | ||||
|      <use x="146.728516" xlink:href="#DejaVuSans-6e"/> | ||||
|      <use x="210.107422" xlink:href="#DejaVuSans-65"/> | ||||
|      <use x="271.630859" xlink:href="#DejaVuSans-20"/> | ||||
|      <use x="303.417969" xlink:href="#DejaVuSans-66"/> | ||||
|      <use x="338.623047" xlink:href="#DejaVuSans-69"/> | ||||
|      <use x="366.40625" xlink:href="#DejaVuSans-6c"/> | ||||
|      <use x="394.189453" xlink:href="#DejaVuSans-65"/> | ||||
|     </g> | ||||
|    </g> | ||||
|    <g id="text_14"> | ||||
|     <!-- ctz skip-list --> | ||||
|     <defs> | ||||
|      <path d="M 9.078125 75.984375  | ||||
| L 18.109375 75.984375  | ||||
| L 18.109375 31.109375  | ||||
| L 44.921875 54.6875  | ||||
| L 56.390625 54.6875  | ||||
| L 27.390625 29.109375  | ||||
| L 57.625 0  | ||||
| L 45.90625 0  | ||||
| L 18.109375 26.703125  | ||||
| L 18.109375 0  | ||||
| L 9.078125 0  | ||||
| z | ||||
| " id="DejaVuSans-6b"/> | ||||
|      <path d="M 4.890625 31.390625  | ||||
| L 31.203125 31.390625  | ||||
| L 31.203125 23.390625  | ||||
| L 4.890625 23.390625  | ||||
| z | ||||
| " id="DejaVuSans-2d"/> | ||||
|     </defs> | ||||
|     <g transform="translate(56.928463 19.76365)rotate(-275)scale(0.09163 -0.09163)"> | ||||
|      <use xlink:href="#DejaVuSans-63"/> | ||||
|      <use x="54.980469" xlink:href="#DejaVuSans-74"/> | ||||
|      <use x="94.189453" xlink:href="#DejaVuSans-7a"/> | ||||
|      <use x="146.679688" xlink:href="#DejaVuSans-20"/> | ||||
|      <use x="178.466797" xlink:href="#DejaVuSans-73"/> | ||||
|      <use x="230.566406" xlink:href="#DejaVuSans-6b"/> | ||||
|      <use x="288.476562" xlink:href="#DejaVuSans-69"/> | ||||
|      <use x="316.259766" xlink:href="#DejaVuSans-70"/> | ||||
|      <use x="379.736328" xlink:href="#DejaVuSans-2d"/> | ||||
|      <use x="415.820312" xlink:href="#DejaVuSans-6c"/> | ||||
|      <use x="443.603516" xlink:href="#DejaVuSans-69"/> | ||||
|      <use x="471.386719" xlink:href="#DejaVuSans-73"/> | ||||
|      <use x="523.486328" xlink:href="#DejaVuSans-74"/> | ||||
|     </g> | ||||
|    </g> | ||||
|    <g id="text_15"> | ||||
|     <!-- File storage cost --> | ||||
|     <defs> | ||||
|      <path d="M 9.8125 72.90625  | ||||
| L 51.703125 72.90625  | ||||
| L 51.703125 64.59375  | ||||
| L 19.671875 64.59375  | ||||
| L 19.671875 43.109375  | ||||
| L 48.578125 43.109375  | ||||
| L 48.578125 34.8125  | ||||
| L 19.671875 34.8125  | ||||
| L 19.671875 0  | ||||
| L 9.8125 0  | ||||
| z | ||||
| " id="DejaVuSans-46"/> | ||||
|      <path d="M 41.109375 46.296875  | ||||
| Q 39.59375 47.171875 37.8125 47.578125  | ||||
| Q 36.03125 48 33.890625 48  | ||||
| Q 26.265625 48 22.1875 43.046875  | ||||
| Q 18.109375 38.09375 18.109375 28.8125  | ||||
| L 18.109375 0  | ||||
| L 9.078125 0  | ||||
| L 9.078125 54.6875  | ||||
| L 18.109375 54.6875  | ||||
| L 18.109375 46.1875  | ||||
| Q 20.953125 51.171875 25.484375 53.578125  | ||||
| Q 30.03125 56 36.53125 56  | ||||
| Q 37.453125 56 38.578125 55.875  | ||||
| Q 39.703125 55.765625 41.0625 55.515625  | ||||
| z | ||||
| " id="DejaVuSans-72"/> | ||||
|      <path d="M 45.40625 27.984375  | ||||
| Q 45.40625 37.75 41.375 43.109375  | ||||
| Q 37.359375 48.484375 30.078125 48.484375  | ||||
| Q 22.859375 48.484375 18.828125 43.109375  | ||||
| Q 14.796875 37.75 14.796875 27.984375  | ||||
| Q 14.796875 18.265625 18.828125 12.890625  | ||||
| Q 22.859375 7.515625 30.078125 7.515625  | ||||
| Q 37.359375 7.515625 41.375 12.890625  | ||||
| Q 45.40625 18.265625 45.40625 27.984375  | ||||
| z | ||||
| M 54.390625 6.78125  | ||||
| Q 54.390625 -7.171875 48.1875 -13.984375  | ||||
| Q 42 -20.796875 29.203125 -20.796875  | ||||
| Q 24.46875 -20.796875 20.265625 -20.09375  | ||||
| Q 16.0625 -19.390625 12.109375 -17.921875  | ||||
| L 12.109375 -9.1875  | ||||
| Q 16.0625 -11.328125 19.921875 -12.34375  | ||||
| Q 23.78125 -13.375 27.78125 -13.375  | ||||
| Q 36.625 -13.375 41.015625 -8.765625  | ||||
| Q 45.40625 -4.15625 45.40625 5.171875  | ||||
| L 45.40625 9.625  | ||||
| Q 42.625 4.78125 38.28125 2.390625  | ||||
| Q 33.9375 0 27.875 0  | ||||
| Q 17.828125 0 11.671875 7.65625  | ||||
| Q 5.515625 15.328125 5.515625 27.984375  | ||||
| Q 5.515625 40.671875 11.671875 48.328125  | ||||
| Q 17.828125 56 27.875 56  | ||||
| Q 33.9375 56 38.28125 53.609375  | ||||
| Q 42.625 51.21875 45.40625 46.390625  | ||||
| L 45.40625 54.6875  | ||||
| L 54.390625 54.6875  | ||||
| z | ||||
| " id="DejaVuSans-67"/> | ||||
|     </defs> | ||||
|     <g transform="translate(175.681044 15.558281)scale(0.11 -0.11)"> | ||||
|      <use xlink:href="#DejaVuSans-46"/> | ||||
|      <use x="57.410156" xlink:href="#DejaVuSans-69"/> | ||||
|      <use x="85.193359" xlink:href="#DejaVuSans-6c"/> | ||||
|      <use x="112.976562" xlink:href="#DejaVuSans-65"/> | ||||
|      <use x="174.5" xlink:href="#DejaVuSans-20"/> | ||||
|      <use x="206.287109" xlink:href="#DejaVuSans-73"/> | ||||
|      <use x="258.386719" xlink:href="#DejaVuSans-74"/> | ||||
|      <use x="297.595703" xlink:href="#DejaVuSans-6f"/> | ||||
|      <use x="358.777344" xlink:href="#DejaVuSans-72"/> | ||||
|      <use x="399.890625" xlink:href="#DejaVuSans-61"/> | ||||
|      <use x="461.169922" xlink:href="#DejaVuSans-67"/> | ||||
|      <use x="524.646484" xlink:href="#DejaVuSans-65"/> | ||||
|      <use x="586.169922" xlink:href="#DejaVuSans-20"/> | ||||
|      <use x="617.957031" xlink:href="#DejaVuSans-63"/> | ||||
|      <use x="672.9375" xlink:href="#DejaVuSans-6f"/> | ||||
|      <use x="734.119141" xlink:href="#DejaVuSans-73"/> | ||||
|      <use x="786.21875" xlink:href="#DejaVuSans-74"/> | ||||
|     </g> | ||||
|    </g> | ||||
|   </g> | ||||
|  </g> | ||||
|  <defs> | ||||
|   <clipPath id="pdf50752646"> | ||||
|    <rect height="182.44" width="361.96" x="40.099247" y="21.558281"/> | ||||
|   </clipPath> | ||||
|  </defs> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 30 KiB | 
							
								
								
									
										40
									
								
								metadata-cost.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										40
									
								
								metadata-cost.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,40 @@ | ||||
| #!/usr/bin/env python | ||||
|  | ||||
| import matplotlib | ||||
| matplotlib.use('SVG') | ||||
| import matplotlib.pyplot as plt | ||||
| import numpy as np | ||||
|  | ||||
| matplotlib.rc('font', family='sans-serif', size=11) | ||||
| matplotlib.rc('axes', titlesize='medium', labelsize='medium') | ||||
| matplotlib.rc('xtick', labelsize='small') | ||||
| matplotlib.rc('ytick', labelsize='small') | ||||
|  | ||||
| fig, ax = plt.subplots(figsize=(6, 3.5)) | ||||
| ax.set_title('Metadata pair update cost') | ||||
|  | ||||
| # multiplicative cost of metadata | ||||
| def cost(r, n, size): | ||||
|     cost = n + n*(r*(size/n) / ((1-r)*(size/n) + 1)) | ||||
|     return cost / n | ||||
|  | ||||
| t = np.arange(0.0, 1.0, 0.01) | ||||
| ax.plot(t, cost(t, 100, 4096)) | ||||
|  | ||||
| ax.set_xlabel('% full') | ||||
| ax.set_xlim(0, 1) | ||||
| ax.set_ylabel('multiplicative cost') | ||||
| ax.set_ylim(0, 12) | ||||
|  | ||||
| xticks = np.arange(0.0, 1+0.1, 0.2) | ||||
| ax.set_xticks(xticks) | ||||
| ax.set_xticklabels(['%d%%' % (100*t) for t in xticks]) | ||||
| yticks = np.arange(0, 12+1, 2) | ||||
| ax.set_yticks(yticks) | ||||
| ax.set_yticklabels(['%dx' % t for t in yticks]) | ||||
|  | ||||
| ax.spines['right'].set_visible(False) | ||||
| ax.spines['top'].set_visible(False) | ||||
|  | ||||
| fig.tight_layout() | ||||
| plt.savefig('metadata-cost.svg', bbox_inches="tight") | ||||
							
								
								
									
										968
									
								
								metadata-cost.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										968
									
								
								metadata-cost.svg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,968 @@ | ||||
| <?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 (http://matplotlib.org/) --> | ||||
| <svg height="241.712285pt" version="1.1" viewBox="0 0 422.382285 241.712285" width="422.382285pt" 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 241.712285  | ||||
| L 422.382285 241.712285  | ||||
| L 422.382285 0  | ||||
| L 0 0  | ||||
| z | ||||
| " style="fill:#ffffff;"/> | ||||
|   </g> | ||||
|   <g id="axes_1"> | ||||
|    <g id="patch_2"> | ||||
|     <path d="M 45.929206 203.998281  | ||||
| L 402.084206 203.998281  | ||||
| L 402.084206 21.558281  | ||||
| L 45.929206 21.558281  | ||||
| z | ||||
| " style="fill:#ffffff;"/> | ||||
|    </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="md69e27c4ae" style="stroke:#000000;stroke-width:0.8;"/> | ||||
|       </defs> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="45.929206" xlink:href="#md69e27c4ae" y="203.998281"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_1"> | ||||
|       <!-- 0% --> | ||||
|       <defs> | ||||
|        <path d="M 31.78125 66.40625  | ||||
| Q 24.171875 66.40625 20.328125 58.90625  | ||||
| Q 16.5 51.421875 16.5 36.375  | ||||
| Q 16.5 21.390625 20.328125 13.890625  | ||||
| Q 24.171875 6.390625 31.78125 6.390625  | ||||
| Q 39.453125 6.390625 43.28125 13.890625  | ||||
| Q 47.125 21.390625 47.125 36.375  | ||||
| Q 47.125 51.421875 43.28125 58.90625  | ||||
| Q 39.453125 66.40625 31.78125 66.40625  | ||||
| z | ||||
| M 31.78125 74.21875  | ||||
| Q 44.046875 74.21875 50.515625 64.515625  | ||||
| Q 56.984375 54.828125 56.984375 36.375  | ||||
| Q 56.984375 17.96875 50.515625 8.265625  | ||||
| Q 44.046875 -1.421875 31.78125 -1.421875  | ||||
| Q 19.53125 -1.421875 13.0625 8.265625  | ||||
| Q 6.59375 17.96875 6.59375 36.375  | ||||
| Q 6.59375 54.828125 13.0625 64.515625  | ||||
| Q 19.53125 74.21875 31.78125 74.21875  | ||||
| z | ||||
| " id="DejaVuSans-30"/> | ||||
|        <path d="M 72.703125 32.078125  | ||||
| Q 68.453125 32.078125 66.03125 28.46875  | ||||
| Q 63.625 24.859375 63.625 18.40625  | ||||
| Q 63.625 12.0625 66.03125 8.421875  | ||||
| Q 68.453125 4.78125 72.703125 4.78125  | ||||
| Q 76.859375 4.78125 79.265625 8.421875  | ||||
| Q 81.6875 12.0625 81.6875 18.40625  | ||||
| Q 81.6875 24.8125 79.265625 28.4375  | ||||
| Q 76.859375 32.078125 72.703125 32.078125  | ||||
| z | ||||
| M 72.703125 38.28125  | ||||
| Q 80.421875 38.28125 84.953125 32.90625  | ||||
| Q 89.5 27.546875 89.5 18.40625  | ||||
| Q 89.5 9.28125 84.9375 3.921875  | ||||
| Q 80.375 -1.421875 72.703125 -1.421875  | ||||
| Q 64.890625 -1.421875 60.34375 3.921875  | ||||
| Q 55.8125 9.28125 55.8125 18.40625  | ||||
| Q 55.8125 27.59375 60.375 32.9375  | ||||
| Q 64.9375 38.28125 72.703125 38.28125  | ||||
| z | ||||
| M 22.3125 68.015625  | ||||
| Q 18.109375 68.015625 15.6875 64.375  | ||||
| Q 13.28125 60.75 13.28125 54.390625  | ||||
| Q 13.28125 47.953125 15.671875 44.328125  | ||||
| Q 18.0625 40.71875 22.3125 40.71875  | ||||
| Q 26.5625 40.71875 28.96875 44.328125  | ||||
| Q 31.390625 47.953125 31.390625 54.390625  | ||||
| Q 31.390625 60.6875 28.953125 64.34375  | ||||
| Q 26.515625 68.015625 22.3125 68.015625  | ||||
| z | ||||
| M 66.40625 74.21875  | ||||
| L 74.21875 74.21875  | ||||
| L 28.609375 -1.421875  | ||||
| L 20.796875 -1.421875  | ||||
| z | ||||
| M 22.3125 74.21875  | ||||
| Q 30.03125 74.21875 34.609375 68.875  | ||||
| Q 39.203125 63.53125 39.203125 54.390625  | ||||
| Q 39.203125 45.171875 34.640625 39.84375  | ||||
| Q 30.078125 34.515625 22.3125 34.515625  | ||||
| Q 14.546875 34.515625 10.03125 39.859375  | ||||
| Q 5.515625 45.21875 5.515625 54.390625  | ||||
| Q 5.515625 63.484375 10.046875 68.84375  | ||||
| Q 14.59375 74.21875 22.3125 74.21875  | ||||
| z | ||||
| " id="DejaVuSans-25"/> | ||||
|       </defs> | ||||
|       <g transform="translate(38.661085 217.96073)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-30"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-25"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="xtick_2"> | ||||
|      <g id="line2d_2"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="117.160206" xlink:href="#md69e27c4ae" y="203.998281"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_2"> | ||||
|       <!-- 20% --> | ||||
|       <defs> | ||||
|        <path d="M 19.1875 8.296875  | ||||
| L 53.609375 8.296875  | ||||
| L 53.609375 0  | ||||
| L 7.328125 0  | ||||
| L 7.328125 8.296875  | ||||
| Q 12.9375 14.109375 22.625 23.890625  | ||||
| Q 32.328125 33.6875 34.8125 36.53125  | ||||
| Q 39.546875 41.84375 41.421875 45.53125  | ||||
| Q 43.3125 49.21875 43.3125 52.78125  | ||||
| Q 43.3125 58.59375 39.234375 62.25  | ||||
| Q 35.15625 65.921875 28.609375 65.921875  | ||||
| Q 23.96875 65.921875 18.8125 64.3125  | ||||
| Q 13.671875 62.703125 7.8125 59.421875  | ||||
| L 7.8125 69.390625  | ||||
| Q 13.765625 71.78125 18.9375 73  | ||||
| Q 24.125 74.21875 28.421875 74.21875  | ||||
| Q 39.75 74.21875 46.484375 68.546875  | ||||
| Q 53.21875 62.890625 53.21875 53.421875  | ||||
| Q 53.21875 48.921875 51.53125 44.890625  | ||||
| Q 49.859375 40.875 45.40625 35.40625  | ||||
| Q 44.1875 33.984375 37.640625 27.21875  | ||||
| Q 31.109375 20.453125 19.1875 8.296875  | ||||
| z | ||||
| " id="DejaVuSans-32"/> | ||||
|       </defs> | ||||
|       <g transform="translate(106.977106 217.96073)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-32"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-30"/> | ||||
|        <use x="127.246094" xlink:href="#DejaVuSans-25"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="xtick_3"> | ||||
|      <g id="line2d_3"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="188.391206" xlink:href="#md69e27c4ae" y="203.998281"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_3"> | ||||
|       <!-- 40% --> | ||||
|       <defs> | ||||
|        <path d="M 37.796875 64.3125  | ||||
| L 12.890625 25.390625  | ||||
| L 37.796875 25.390625  | ||||
| z | ||||
| M 35.203125 72.90625  | ||||
| L 47.609375 72.90625  | ||||
| L 47.609375 25.390625  | ||||
| L 58.015625 25.390625  | ||||
| L 58.015625 17.1875  | ||||
| L 47.609375 17.1875  | ||||
| L 47.609375 0  | ||||
| L 37.796875 0  | ||||
| L 37.796875 17.1875  | ||||
| L 4.890625 17.1875  | ||||
| L 4.890625 26.703125  | ||||
| z | ||||
| " id="DejaVuSans-34"/> | ||||
|       </defs> | ||||
|       <g transform="translate(178.208106 217.96073)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-34"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-30"/> | ||||
|        <use x="127.246094" xlink:href="#DejaVuSans-25"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="xtick_4"> | ||||
|      <g id="line2d_4"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="259.622206" xlink:href="#md69e27c4ae" y="203.998281"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_4"> | ||||
|       <!-- 60% --> | ||||
|       <defs> | ||||
|        <path d="M 33.015625 40.375  | ||||
| Q 26.375 40.375 22.484375 35.828125  | ||||
| Q 18.609375 31.296875 18.609375 23.390625  | ||||
| Q 18.609375 15.53125 22.484375 10.953125  | ||||
| Q 26.375 6.390625 33.015625 6.390625  | ||||
| Q 39.65625 6.390625 43.53125 10.953125  | ||||
| Q 47.40625 15.53125 47.40625 23.390625  | ||||
| Q 47.40625 31.296875 43.53125 35.828125  | ||||
| Q 39.65625 40.375 33.015625 40.375  | ||||
| z | ||||
| M 52.59375 71.296875  | ||||
| L 52.59375 62.3125  | ||||
| Q 48.875 64.0625 45.09375 64.984375  | ||||
| Q 41.3125 65.921875 37.59375 65.921875  | ||||
| Q 27.828125 65.921875 22.671875 59.328125  | ||||
| Q 17.53125 52.734375 16.796875 39.40625  | ||||
| Q 19.671875 43.65625 24.015625 45.921875  | ||||
| Q 28.375 48.1875 33.59375 48.1875  | ||||
| Q 44.578125 48.1875 50.953125 41.515625  | ||||
| Q 57.328125 34.859375 57.328125 23.390625  | ||||
| Q 57.328125 12.15625 50.6875 5.359375  | ||||
| Q 44.046875 -1.421875 33.015625 -1.421875  | ||||
| Q 20.359375 -1.421875 13.671875 8.265625  | ||||
| Q 6.984375 17.96875 6.984375 36.375  | ||||
| Q 6.984375 53.65625 15.1875 63.9375  | ||||
| Q 23.390625 74.21875 37.203125 74.21875  | ||||
| Q 40.921875 74.21875 44.703125 73.484375  | ||||
| Q 48.484375 72.75 52.59375 71.296875  | ||||
| z | ||||
| " id="DejaVuSans-36"/> | ||||
|       </defs> | ||||
|       <g transform="translate(249.439106 217.96073)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-36"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-30"/> | ||||
|        <use x="127.246094" xlink:href="#DejaVuSans-25"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="xtick_5"> | ||||
|      <g id="line2d_5"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="330.853206" xlink:href="#md69e27c4ae" y="203.998281"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_5"> | ||||
|       <!-- 80% --> | ||||
|       <defs> | ||||
|        <path d="M 31.78125 34.625  | ||||
| Q 24.75 34.625 20.71875 30.859375  | ||||
| Q 16.703125 27.09375 16.703125 20.515625  | ||||
| Q 16.703125 13.921875 20.71875 10.15625  | ||||
| Q 24.75 6.390625 31.78125 6.390625  | ||||
| Q 38.8125 6.390625 42.859375 10.171875  | ||||
| Q 46.921875 13.96875 46.921875 20.515625  | ||||
| Q 46.921875 27.09375 42.890625 30.859375  | ||||
| Q 38.875 34.625 31.78125 34.625  | ||||
| z | ||||
| M 21.921875 38.8125  | ||||
| Q 15.578125 40.375 12.03125 44.71875  | ||||
| Q 8.5 49.078125 8.5 55.328125  | ||||
| Q 8.5 64.0625 14.71875 69.140625  | ||||
| Q 20.953125 74.21875 31.78125 74.21875  | ||||
| Q 42.671875 74.21875 48.875 69.140625  | ||||
| Q 55.078125 64.0625 55.078125 55.328125  | ||||
| Q 55.078125 49.078125 51.53125 44.71875  | ||||
| Q 48 40.375 41.703125 38.8125  | ||||
| Q 48.828125 37.15625 52.796875 32.3125  | ||||
| Q 56.78125 27.484375 56.78125 20.515625  | ||||
| Q 56.78125 9.90625 50.3125 4.234375  | ||||
| Q 43.84375 -1.421875 31.78125 -1.421875  | ||||
| Q 19.734375 -1.421875 13.25 4.234375  | ||||
| Q 6.78125 9.90625 6.78125 20.515625  | ||||
| Q 6.78125 27.484375 10.78125 32.3125  | ||||
| Q 14.796875 37.15625 21.921875 38.8125  | ||||
| z | ||||
| M 18.3125 54.390625  | ||||
| Q 18.3125 48.734375 21.84375 45.5625  | ||||
| Q 25.390625 42.390625 31.78125 42.390625  | ||||
| Q 38.140625 42.390625 41.71875 45.5625  | ||||
| Q 45.3125 48.734375 45.3125 54.390625  | ||||
| Q 45.3125 60.0625 41.71875 63.234375  | ||||
| Q 38.140625 66.40625 31.78125 66.40625  | ||||
| Q 25.390625 66.40625 21.84375 63.234375  | ||||
| Q 18.3125 60.0625 18.3125 54.390625  | ||||
| z | ||||
| " id="DejaVuSans-38"/> | ||||
|       </defs> | ||||
|       <g transform="translate(320.670106 217.96073)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-38"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-30"/> | ||||
|        <use x="127.246094" xlink:href="#DejaVuSans-25"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="xtick_6"> | ||||
|      <g id="line2d_6"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="402.084206" xlink:href="#md69e27c4ae" y="203.998281"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_6"> | ||||
|       <!-- 100% --> | ||||
|       <defs> | ||||
|        <path d="M 12.40625 8.296875  | ||||
| L 28.515625 8.296875  | ||||
| L 28.515625 63.921875  | ||||
| L 10.984375 60.40625  | ||||
| L 10.984375 69.390625  | ||||
| L 28.421875 72.90625  | ||||
| L 38.28125 72.90625  | ||||
| L 38.28125 8.296875  | ||||
| L 54.390625 8.296875  | ||||
| L 54.390625 0  | ||||
| L 12.40625 0  | ||||
| z | ||||
| " id="DejaVuSans-31"/> | ||||
|       </defs> | ||||
|       <g transform="translate(388.986127 217.96073)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-31"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-30"/> | ||||
|        <use x="127.246094" xlink:href="#DejaVuSans-30"/> | ||||
|        <use x="190.869141" xlink:href="#DejaVuSans-25"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="text_7"> | ||||
|      <!-- % full --> | ||||
|      <defs> | ||||
|       <path id="DejaVuSans-20"/> | ||||
|       <path d="M 37.109375 75.984375  | ||||
| L 37.109375 68.5  | ||||
| L 28.515625 68.5  | ||||
| Q 23.6875 68.5 21.796875 66.546875  | ||||
| Q 19.921875 64.59375 19.921875 59.515625  | ||||
| L 19.921875 54.6875  | ||||
| L 34.71875 54.6875  | ||||
| L 34.71875 47.703125  | ||||
| L 19.921875 47.703125  | ||||
| L 19.921875 0  | ||||
| L 10.890625 0  | ||||
| L 10.890625 47.703125  | ||||
| L 2.296875 47.703125  | ||||
| L 2.296875 54.6875  | ||||
| L 10.890625 54.6875  | ||||
| L 10.890625 58.5  | ||||
| Q 10.890625 67.625 15.140625 71.796875  | ||||
| Q 19.390625 75.984375 28.609375 75.984375  | ||||
| z | ||||
| " id="DejaVuSans-66"/> | ||||
|       <path d="M 8.5 21.578125  | ||||
| L 8.5 54.6875  | ||||
| L 17.484375 54.6875  | ||||
| L 17.484375 21.921875  | ||||
| Q 17.484375 14.15625 20.5 10.265625  | ||||
| Q 23.53125 6.390625 29.59375 6.390625  | ||||
| Q 36.859375 6.390625 41.078125 11.03125  | ||||
| Q 45.3125 15.671875 45.3125 23.6875  | ||||
| L 45.3125 54.6875  | ||||
| L 54.296875 54.6875  | ||||
| L 54.296875 0  | ||||
| L 45.3125 0  | ||||
| L 45.3125 8.40625  | ||||
| Q 42.046875 3.421875 37.71875 1  | ||||
| Q 33.40625 -1.421875 27.6875 -1.421875  | ||||
| Q 18.265625 -1.421875 13.375 4.4375  | ||||
| Q 8.5 10.296875 8.5 21.578125  | ||||
| z | ||||
| M 31.109375 56  | ||||
| z | ||||
| " id="DejaVuSans-75"/> | ||||
|       <path d="M 9.421875 75.984375  | ||||
| L 18.40625 75.984375  | ||||
| L 18.40625 0  | ||||
| L 9.421875 0  | ||||
| z | ||||
| " id="DejaVuSans-6c"/> | ||||
|      </defs> | ||||
|      <g transform="translate(208.555143 232.224628)scale(0.11 -0.11)"> | ||||
|       <use xlink:href="#DejaVuSans-25"/> | ||||
|       <use x="95.019531" xlink:href="#DejaVuSans-20"/> | ||||
|       <use x="126.806641" xlink:href="#DejaVuSans-66"/> | ||||
|       <use x="162.011719" xlink:href="#DejaVuSans-75"/> | ||||
|       <use x="225.390625" xlink:href="#DejaVuSans-6c"/> | ||||
|       <use x="253.173828" xlink:href="#DejaVuSans-6c"/> | ||||
|      </g> | ||||
|     </g> | ||||
|    </g> | ||||
|    <g id="matplotlib.axis_2"> | ||||
|     <g id="ytick_1"> | ||||
|      <g id="line2d_7"> | ||||
|       <defs> | ||||
|        <path d="M 0 0  | ||||
| L -3.5 0  | ||||
| " id="m3661cbe52c" style="stroke:#000000;stroke-width:0.8;"/> | ||||
|       </defs> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="45.929206" xlink:href="#m3661cbe52c" y="203.998281"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_8"> | ||||
|       <!-- 0x --> | ||||
|       <defs> | ||||
|        <path d="M 54.890625 54.6875  | ||||
| L 35.109375 28.078125  | ||||
| L 55.90625 0  | ||||
| L 45.3125 0  | ||||
| L 29.390625 21.484375  | ||||
| L 13.484375 0  | ||||
| L 2.875 0  | ||||
| L 24.125 28.609375  | ||||
| L 4.6875 54.6875  | ||||
| L 15.28125 54.6875  | ||||
| L 29.78125 35.203125  | ||||
| L 44.28125 54.6875  | ||||
| z | ||||
| " id="DejaVuSans-78"/> | ||||
|       </defs> | ||||
|       <g transform="translate(27.675896 207.479505)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-30"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-78"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="ytick_2"> | ||||
|      <g id="line2d_8"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="45.929206" xlink:href="#m3661cbe52c" y="173.591615"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_9"> | ||||
|       <!-- 2x --> | ||||
|       <g transform="translate(27.675896 177.072839)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-32"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-78"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="ytick_3"> | ||||
|      <g id="line2d_9"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="45.929206" xlink:href="#m3661cbe52c" y="143.184948"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_10"> | ||||
|       <!-- 4x --> | ||||
|       <g transform="translate(27.675896 146.666172)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-34"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-78"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="ytick_4"> | ||||
|      <g id="line2d_10"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="45.929206" xlink:href="#m3661cbe52c" y="112.778281"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_11"> | ||||
|       <!-- 6x --> | ||||
|       <g transform="translate(27.675896 116.259505)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-36"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-78"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="ytick_5"> | ||||
|      <g id="line2d_11"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="45.929206" xlink:href="#m3661cbe52c" y="82.371615"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_12"> | ||||
|       <!-- 8x --> | ||||
|       <g transform="translate(27.675896 85.852839)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-38"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-78"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="ytick_6"> | ||||
|      <g id="line2d_12"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="45.929206" xlink:href="#m3661cbe52c" y="51.964948"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_13"> | ||||
|       <!-- 10x --> | ||||
|       <g transform="translate(21.845938 55.446172)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-31"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-30"/> | ||||
|        <use x="127.246094" xlink:href="#DejaVuSans-78"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="ytick_7"> | ||||
|      <g id="line2d_13"> | ||||
|       <g> | ||||
|        <use style="stroke:#000000;stroke-width:0.8;" x="45.929206" xlink:href="#m3661cbe52c" y="21.558281"/> | ||||
|       </g> | ||||
|      </g> | ||||
|      <g id="text_14"> | ||||
|       <!-- 12x --> | ||||
|       <g transform="translate(21.845938 25.039505)scale(0.09163 -0.09163)"> | ||||
|        <use xlink:href="#DejaVuSans-31"/> | ||||
|        <use x="63.623047" xlink:href="#DejaVuSans-32"/> | ||||
|        <use x="127.246094" xlink:href="#DejaVuSans-78"/> | ||||
|       </g> | ||||
|      </g> | ||||
|     </g> | ||||
|     <g id="text_15"> | ||||
|      <!-- multiplicative cost --> | ||||
|      <defs> | ||||
|       <path d="M 52 44.1875  | ||||
| Q 55.375 50.25 60.0625 53.125  | ||||
| Q 64.75 56 71.09375 56  | ||||
| Q 79.640625 56 84.28125 50.015625  | ||||
| Q 88.921875 44.046875 88.921875 33.015625  | ||||
| L 88.921875 0  | ||||
| L 79.890625 0  | ||||
| L 79.890625 32.71875  | ||||
| Q 79.890625 40.578125 77.09375 44.375  | ||||
| Q 74.3125 48.1875 68.609375 48.1875  | ||||
| Q 61.625 48.1875 57.5625 43.546875  | ||||
| Q 53.515625 38.921875 53.515625 30.90625  | ||||
| L 53.515625 0  | ||||
| L 44.484375 0  | ||||
| L 44.484375 32.71875  | ||||
| Q 44.484375 40.625 41.703125 44.40625  | ||||
| Q 38.921875 48.1875 33.109375 48.1875  | ||||
| Q 26.21875 48.1875 22.15625 43.53125  | ||||
| Q 18.109375 38.875 18.109375 30.90625  | ||||
| L 18.109375 0  | ||||
| L 9.078125 0  | ||||
| L 9.078125 54.6875  | ||||
| L 18.109375 54.6875  | ||||
| L 18.109375 46.1875  | ||||
| Q 21.1875 51.21875 25.484375 53.609375  | ||||
| Q 29.78125 56 35.6875 56  | ||||
| Q 41.65625 56 45.828125 52.96875  | ||||
| Q 50 49.953125 52 44.1875  | ||||
| z | ||||
| " id="DejaVuSans-6d"/> | ||||
|       <path d="M 18.3125 70.21875  | ||||
| L 18.3125 54.6875  | ||||
| L 36.8125 54.6875  | ||||
| L 36.8125 47.703125  | ||||
| L 18.3125 47.703125  | ||||
| L 18.3125 18.015625  | ||||
| Q 18.3125 11.328125 20.140625 9.421875  | ||||
| Q 21.96875 7.515625 27.59375 7.515625  | ||||
| L 36.8125 7.515625  | ||||
| L 36.8125 0  | ||||
| L 27.59375 0  | ||||
| Q 17.1875 0 13.234375 3.875  | ||||
| Q 9.28125 7.765625 9.28125 18.015625  | ||||
| L 9.28125 47.703125  | ||||
| L 2.6875 47.703125  | ||||
| L 2.6875 54.6875  | ||||
| L 9.28125 54.6875  | ||||
| L 9.28125 70.21875  | ||||
| z | ||||
| " id="DejaVuSans-74"/> | ||||
|       <path d="M 9.421875 54.6875  | ||||
| L 18.40625 54.6875  | ||||
| L 18.40625 0  | ||||
| L 9.421875 0  | ||||
| z | ||||
| M 9.421875 75.984375  | ||||
| L 18.40625 75.984375  | ||||
| L 18.40625 64.59375  | ||||
| L 9.421875 64.59375  | ||||
| z | ||||
| " id="DejaVuSans-69"/> | ||||
|       <path d="M 18.109375 8.203125  | ||||
| L 18.109375 -20.796875  | ||||
| L 9.078125 -20.796875  | ||||
| L 9.078125 54.6875  | ||||
| L 18.109375 54.6875  | ||||
| L 18.109375 46.390625  | ||||
| Q 20.953125 51.265625 25.265625 53.625  | ||||
| Q 29.59375 56 35.59375 56  | ||||
| Q 45.5625 56 51.78125 48.09375  | ||||
| Q 58.015625 40.1875 58.015625 27.296875  | ||||
| Q 58.015625 14.40625 51.78125 6.484375  | ||||
| Q 45.5625 -1.421875 35.59375 -1.421875  | ||||
| Q 29.59375 -1.421875 25.265625 0.953125  | ||||
| Q 20.953125 3.328125 18.109375 8.203125  | ||||
| z | ||||
| M 48.6875 27.296875  | ||||
| Q 48.6875 37.203125 44.609375 42.84375  | ||||
| Q 40.53125 48.484375 33.40625 48.484375  | ||||
| Q 26.265625 48.484375 22.1875 42.84375  | ||||
| Q 18.109375 37.203125 18.109375 27.296875  | ||||
| Q 18.109375 17.390625 22.1875 11.75  | ||||
| Q 26.265625 6.109375 33.40625 6.109375  | ||||
| Q 40.53125 6.109375 44.609375 11.75  | ||||
| Q 48.6875 17.390625 48.6875 27.296875  | ||||
| z | ||||
| " id="DejaVuSans-70"/> | ||||
|       <path d="M 48.78125 52.59375  | ||||
| L 48.78125 44.1875  | ||||
| Q 44.96875 46.296875 41.140625 47.34375  | ||||
| Q 37.3125 48.390625 33.40625 48.390625  | ||||
| Q 24.65625 48.390625 19.8125 42.84375  | ||||
| Q 14.984375 37.3125 14.984375 27.296875  | ||||
| Q 14.984375 17.28125 19.8125 11.734375  | ||||
| Q 24.65625 6.203125 33.40625 6.203125  | ||||
| Q 37.3125 6.203125 41.140625 7.25  | ||||
| Q 44.96875 8.296875 48.78125 10.40625  | ||||
| L 48.78125 2.09375  | ||||
| Q 45.015625 0.34375 40.984375 -0.53125  | ||||
| Q 36.96875 -1.421875 32.421875 -1.421875  | ||||
| Q 20.0625 -1.421875 12.78125 6.34375  | ||||
| Q 5.515625 14.109375 5.515625 27.296875  | ||||
| Q 5.515625 40.671875 12.859375 48.328125  | ||||
| Q 20.21875 56 33.015625 56  | ||||
| Q 37.15625 56 41.109375 55.140625  | ||||
| Q 45.0625 54.296875 48.78125 52.59375  | ||||
| z | ||||
| " id="DejaVuSans-63"/> | ||||
|       <path d="M 34.28125 27.484375  | ||||
| Q 23.390625 27.484375 19.1875 25  | ||||
| Q 14.984375 22.515625 14.984375 16.5  | ||||
| Q 14.984375 11.71875 18.140625 8.90625  | ||||
| Q 21.296875 6.109375 26.703125 6.109375  | ||||
| Q 34.1875 6.109375 38.703125 11.40625  | ||||
| Q 43.21875 16.703125 43.21875 25.484375  | ||||
| L 43.21875 27.484375  | ||||
| z | ||||
| M 52.203125 31.203125  | ||||
| L 52.203125 0  | ||||
| L 43.21875 0  | ||||
| L 43.21875 8.296875  | ||||
| Q 40.140625 3.328125 35.546875 0.953125  | ||||
| Q 30.953125 -1.421875 24.3125 -1.421875  | ||||
| Q 15.921875 -1.421875 10.953125 3.296875  | ||||
| Q 6 8.015625 6 15.921875  | ||||
| Q 6 25.140625 12.171875 29.828125  | ||||
| Q 18.359375 34.515625 30.609375 34.515625  | ||||
| L 43.21875 34.515625  | ||||
| L 43.21875 35.40625  | ||||
| Q 43.21875 41.609375 39.140625 45  | ||||
| Q 35.0625 48.390625 27.6875 48.390625  | ||||
| Q 23 48.390625 18.546875 47.265625  | ||||
| Q 14.109375 46.140625 10.015625 43.890625  | ||||
| L 10.015625 52.203125  | ||||
| Q 14.9375 54.109375 19.578125 55.046875  | ||||
| Q 24.21875 56 28.609375 56  | ||||
| Q 40.484375 56 46.34375 49.84375  | ||||
| Q 52.203125 43.703125 52.203125 31.203125  | ||||
| z | ||||
| " id="DejaVuSans-61"/> | ||||
|       <path d="M 2.984375 54.6875  | ||||
| L 12.5 54.6875  | ||||
| L 29.59375 8.796875  | ||||
| L 46.6875 54.6875  | ||||
| L 56.203125 54.6875  | ||||
| L 35.6875 0  | ||||
| L 23.484375 0  | ||||
| z | ||||
| " id="DejaVuSans-76"/> | ||||
|       <path d="M 56.203125 29.59375  | ||||
| L 56.203125 25.203125  | ||||
| L 14.890625 25.203125  | ||||
| Q 15.484375 15.921875 20.484375 11.0625  | ||||
| Q 25.484375 6.203125 34.421875 6.203125  | ||||
| Q 39.59375 6.203125 44.453125 7.46875  | ||||
| Q 49.3125 8.734375 54.109375 11.28125  | ||||
| L 54.109375 2.78125  | ||||
| Q 49.265625 0.734375 44.1875 -0.34375  | ||||
| Q 39.109375 -1.421875 33.890625 -1.421875  | ||||
| Q 20.796875 -1.421875 13.15625 6.1875  | ||||
| Q 5.515625 13.8125 5.515625 26.8125  | ||||
| Q 5.515625 40.234375 12.765625 48.109375  | ||||
| Q 20.015625 56 32.328125 56  | ||||
| Q 43.359375 56 49.78125 48.890625  | ||||
| Q 56.203125 41.796875 56.203125 29.59375  | ||||
| z | ||||
| M 47.21875 32.234375  | ||||
| Q 47.125 39.59375 43.09375 43.984375  | ||||
| Q 39.0625 48.390625 32.421875 48.390625  | ||||
| Q 24.90625 48.390625 20.390625 44.140625  | ||||
| Q 15.875 39.890625 15.1875 32.171875  | ||||
| z | ||||
| " id="DejaVuSans-65"/> | ||||
|       <path d="M 30.609375 48.390625  | ||||
| Q 23.390625 48.390625 19.1875 42.75  | ||||
| Q 14.984375 37.109375 14.984375 27.296875  | ||||
| Q 14.984375 17.484375 19.15625 11.84375  | ||||
| Q 23.34375 6.203125 30.609375 6.203125  | ||||
| Q 37.796875 6.203125 41.984375 11.859375  | ||||
| Q 46.1875 17.53125 46.1875 27.296875  | ||||
| Q 46.1875 37.015625 41.984375 42.703125  | ||||
| Q 37.796875 48.390625 30.609375 48.390625  | ||||
| z | ||||
| M 30.609375 56  | ||||
| Q 42.328125 56 49.015625 48.375  | ||||
| Q 55.71875 40.765625 55.71875 27.296875  | ||||
| Q 55.71875 13.875 49.015625 6.21875  | ||||
| Q 42.328125 -1.421875 30.609375 -1.421875  | ||||
| Q 18.84375 -1.421875 12.171875 6.21875  | ||||
| Q 5.515625 13.875 5.515625 27.296875  | ||||
| Q 5.515625 40.765625 12.171875 48.375  | ||||
| Q 18.84375 56 30.609375 56  | ||||
| z | ||||
| " id="DejaVuSans-6f"/> | ||||
|       <path d="M 44.28125 53.078125  | ||||
| L 44.28125 44.578125  | ||||
| Q 40.484375 46.53125 36.375 47.5  | ||||
| Q 32.28125 48.484375 27.875 48.484375  | ||||
| Q 21.1875 48.484375 17.84375 46.4375  | ||||
| Q 14.5 44.390625 14.5 40.28125  | ||||
| Q 14.5 37.15625 16.890625 35.375  | ||||
| Q 19.28125 33.59375 26.515625 31.984375  | ||||
| L 29.59375 31.296875  | ||||
| Q 39.15625 29.25 43.1875 25.515625  | ||||
| Q 47.21875 21.78125 47.21875 15.09375  | ||||
| Q 47.21875 7.46875 41.1875 3.015625  | ||||
| Q 35.15625 -1.421875 24.609375 -1.421875  | ||||
| Q 20.21875 -1.421875 15.453125 -0.5625  | ||||
| Q 10.6875 0.296875 5.421875 2  | ||||
| L 5.421875 11.28125  | ||||
| Q 10.40625 8.6875 15.234375 7.390625  | ||||
| Q 20.0625 6.109375 24.8125 6.109375  | ||||
| Q 31.15625 6.109375 34.5625 8.28125  | ||||
| Q 37.984375 10.453125 37.984375 14.40625  | ||||
| Q 37.984375 18.0625 35.515625 20.015625  | ||||
| Q 33.0625 21.96875 24.703125 23.78125  | ||||
| L 21.578125 24.515625  | ||||
| Q 13.234375 26.265625 9.515625 29.90625  | ||||
| Q 5.8125 33.546875 5.8125 39.890625  | ||||
| Q 5.8125 47.609375 11.28125 51.796875  | ||||
| Q 16.75 56 26.8125 56  | ||||
| Q 31.78125 56 36.171875 55.265625  | ||||
| Q 40.578125 54.546875 44.28125 53.078125  | ||||
| z | ||||
| " id="DejaVuSans-73"/> | ||||
|      </defs> | ||||
|      <g transform="translate(15.558281 163.257969)rotate(-90)scale(0.11 -0.11)"> | ||||
|       <use xlink:href="#DejaVuSans-6d"/> | ||||
|       <use x="97.412109" xlink:href="#DejaVuSans-75"/> | ||||
|       <use x="160.791016" xlink:href="#DejaVuSans-6c"/> | ||||
|       <use x="188.574219" xlink:href="#DejaVuSans-74"/> | ||||
|       <use x="227.783203" xlink:href="#DejaVuSans-69"/> | ||||
|       <use x="255.566406" xlink:href="#DejaVuSans-70"/> | ||||
|       <use x="319.042969" xlink:href="#DejaVuSans-6c"/> | ||||
|       <use x="346.826172" xlink:href="#DejaVuSans-69"/> | ||||
|       <use x="374.609375" xlink:href="#DejaVuSans-63"/> | ||||
|       <use x="429.589844" xlink:href="#DejaVuSans-61"/> | ||||
|       <use x="490.869141" xlink:href="#DejaVuSans-74"/> | ||||
|       <use x="530.078125" xlink:href="#DejaVuSans-69"/> | ||||
|       <use x="557.861328" xlink:href="#DejaVuSans-76"/> | ||||
|       <use x="617.041016" xlink:href="#DejaVuSans-65"/> | ||||
|       <use x="678.564453" xlink:href="#DejaVuSans-20"/> | ||||
|       <use x="710.351562" xlink:href="#DejaVuSans-63"/> | ||||
|       <use x="765.332031" xlink:href="#DejaVuSans-6f"/> | ||||
|       <use x="826.513672" xlink:href="#DejaVuSans-73"/> | ||||
|       <use x="878.613281" xlink:href="#DejaVuSans-74"/> | ||||
|      </g> | ||||
|     </g> | ||||
|    </g> | ||||
|    <g id="line2d_14"> | ||||
|     <path clip-path="url(#p0570563b73)" d="M 45.929206 188.794948  | ||||
| L 49.490756 188.645161  | ||||
| L 53.052306 188.492394  | ||||
| L 56.613856 188.336556  | ||||
| L 60.175406 188.177554  | ||||
| L 63.736956 188.01529  | ||||
| L 67.298506 187.849663  | ||||
| L 70.860056 187.680567  | ||||
| L 74.421606 187.507893  | ||||
| L 77.983156 187.331525  | ||||
| L 81.544706 187.151344  | ||||
| L 85.106256 186.967225  | ||||
| L 88.667806 186.779036  | ||||
| L 92.229356 186.586643  | ||||
| L 95.790906 186.389901  | ||||
| L 99.352456 186.188662  | ||||
| L 102.914006 185.982771  | ||||
| L 106.475556 185.772063  | ||||
| L 110.037106 185.556368  | ||||
| L 113.598656 185.335507  | ||||
| L 117.160206 185.109291  | ||||
| L 120.721756 184.877525  | ||||
| L 124.283306 184.64  | ||||
| L 127.844856 184.396499  | ||||
| L 131.406406 184.146795  | ||||
| L 134.967956 183.890647  | ||||
| L 138.529506 183.627802  | ||||
| L 142.091056 183.357994  | ||||
| L 145.652606 183.080943  | ||||
| L 149.214156 182.796354  | ||||
| L 152.775706 182.503913  | ||||
| L 156.337256 182.203293  | ||||
| L 159.898806 181.894144  | ||||
| L 163.460356 181.576099  | ||||
| L 167.021906 181.248768  | ||||
| L 170.583456 180.911738  | ||||
| L 174.145006 180.564572  | ||||
| L 177.706556 180.206805  | ||||
| L 181.268106 179.837945  | ||||
| L 184.829656 179.457468  | ||||
| L 188.391206 179.064815  | ||||
| L 191.952756 178.659392  | ||||
| L 195.514306 178.240568  | ||||
| L 199.075856 177.807665  | ||||
| L 202.637406 177.359962  | ||||
| L 206.198956 176.896687  | ||||
| L 209.760506 176.417013  | ||||
| L 213.322056 175.920053  | ||||
| L 216.883606 175.404856  | ||||
| L 220.445156 174.8704  | ||||
| L 224.006706 174.315583  | ||||
| L 227.568256 173.73922  | ||||
| L 231.129806 173.14003  | ||||
| L 234.691356 172.516631  | ||||
| L 238.252906 171.867525  | ||||
| L 241.814456 171.191088  | ||||
| L 245.376006 170.485557  | ||||
| L 248.937556 169.749014  | ||||
| L 252.499106 168.979367  | ||||
| L 256.060656 168.174335  | ||||
| L 259.622206 167.331419  | ||||
| L 263.183756 166.44788  | ||||
| L 266.745306 165.520709  | ||||
| L 270.306856 164.546593  | ||||
| L 273.868406 163.521874  | ||||
| L 277.429956 162.442503  | ||||
| L 280.991506 161.303989  | ||||
| L 284.553056 160.101333  | ||||
| L 288.114606 158.828958  | ||||
| L 291.676156 157.48062  | ||||
| L 295.237706 156.049307  | ||||
| L 298.799256 154.527117  | ||||
| L 302.360806 152.905112  | ||||
| L 305.922356 151.17314  | ||||
| L 309.483906 149.319626  | ||||
| L 313.045456 147.331312  | ||||
| L 316.607006 145.192935  | ||||
| L 320.168556 142.886843  | ||||
| L 323.730106 140.392499  | ||||
| L 327.291656 137.68587  | ||||
| L 330.853206 134.738652  | ||||
| L 334.414756 131.517273  | ||||
| L 337.976306 127.981615  | ||||
| L 341.537856 124.083324  | ||||
| L 345.099406 119.763597  | ||||
| L 348.660956 114.950186  | ||||
| L 352.222506 109.553332  | ||||
| L 355.784056 103.460109  | ||||
| L 359.345606 96.526442  | ||||
| L 362.907156 88.565565  | ||||
| L 366.468706 79.330948  | ||||
| L 370.030256 68.49031  | ||||
| L 373.591806 55.584789  | ||||
| L 377.153356 39.962316  | ||||
| L 380.714906 20.663968  | ||||
| L 383.871324 -1  | ||||
| " style="fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;"/> | ||||
|    </g> | ||||
|    <g id="patch_3"> | ||||
|     <path d="M 45.929206 203.998281  | ||||
| L 45.929206 21.558281  | ||||
| " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> | ||||
|    </g> | ||||
|    <g id="patch_4"> | ||||
|     <path d="M 45.929206 203.998281  | ||||
| L 402.084206 203.998281  | ||||
| " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> | ||||
|    </g> | ||||
|    <g id="text_16"> | ||||
|     <!-- Metadata pair update cost --> | ||||
|     <defs> | ||||
|      <path d="M 9.8125 72.90625  | ||||
| L 24.515625 72.90625  | ||||
| L 43.109375 23.296875  | ||||
| L 61.8125 72.90625  | ||||
| L 76.515625 72.90625  | ||||
| L 76.515625 0  | ||||
| L 66.890625 0  | ||||
| L 66.890625 64.015625  | ||||
| L 48.09375 14.015625  | ||||
| L 38.1875 14.015625  | ||||
| L 19.390625 64.015625  | ||||
| L 19.390625 0  | ||||
| L 9.8125 0  | ||||
| z | ||||
| " id="DejaVuSans-4d"/> | ||||
|      <path d="M 45.40625 46.390625  | ||||
| L 45.40625 75.984375  | ||||
| L 54.390625 75.984375  | ||||
| L 54.390625 0  | ||||
| L 45.40625 0  | ||||
| L 45.40625 8.203125  | ||||
| Q 42.578125 3.328125 38.25 0.953125  | ||||
| Q 33.9375 -1.421875 27.875 -1.421875  | ||||
| Q 17.96875 -1.421875 11.734375 6.484375  | ||||
| Q 5.515625 14.40625 5.515625 27.296875  | ||||
| Q 5.515625 40.1875 11.734375 48.09375  | ||||
| Q 17.96875 56 27.875 56  | ||||
| Q 33.9375 56 38.25 53.625  | ||||
| Q 42.578125 51.265625 45.40625 46.390625  | ||||
| z | ||||
| M 14.796875 27.296875  | ||||
| Q 14.796875 17.390625 18.875 11.75  | ||||
| Q 22.953125 6.109375 30.078125 6.109375  | ||||
| Q 37.203125 6.109375 41.296875 11.75  | ||||
| Q 45.40625 17.390625 45.40625 27.296875  | ||||
| Q 45.40625 37.203125 41.296875 42.84375  | ||||
| Q 37.203125 48.484375 30.078125 48.484375  | ||||
| Q 22.953125 48.484375 18.875 42.84375  | ||||
| Q 14.796875 37.203125 14.796875 27.296875  | ||||
| z | ||||
| " id="DejaVuSans-64"/> | ||||
|      <path d="M 41.109375 46.296875  | ||||
| Q 39.59375 47.171875 37.8125 47.578125  | ||||
| Q 36.03125 48 33.890625 48  | ||||
| Q 26.265625 48 22.1875 43.046875  | ||||
| Q 18.109375 38.09375 18.109375 28.8125  | ||||
| L 18.109375 0  | ||||
| L 9.078125 0  | ||||
| L 9.078125 54.6875  | ||||
| L 18.109375 54.6875  | ||||
| L 18.109375 46.1875  | ||||
| Q 20.953125 51.171875 25.484375 53.578125  | ||||
| Q 30.03125 56 36.53125 56  | ||||
| Q 37.453125 56 38.578125 55.875  | ||||
| Q 39.703125 55.765625 41.0625 55.515625  | ||||
| z | ||||
| " id="DejaVuSans-72"/> | ||||
|     </defs> | ||||
|     <g transform="translate(151.276081 15.558281)scale(0.11 -0.11)"> | ||||
|      <use xlink:href="#DejaVuSans-4d"/> | ||||
|      <use x="86.279297" xlink:href="#DejaVuSans-65"/> | ||||
|      <use x="147.802734" xlink:href="#DejaVuSans-74"/> | ||||
|      <use x="187.011719" xlink:href="#DejaVuSans-61"/> | ||||
|      <use x="248.291016" xlink:href="#DejaVuSans-64"/> | ||||
|      <use x="311.767578" xlink:href="#DejaVuSans-61"/> | ||||
|      <use x="373.046875" xlink:href="#DejaVuSans-74"/> | ||||
|      <use x="412.255859" xlink:href="#DejaVuSans-61"/> | ||||
|      <use x="473.535156" xlink:href="#DejaVuSans-20"/> | ||||
|      <use x="505.322266" xlink:href="#DejaVuSans-70"/> | ||||
|      <use x="568.798828" xlink:href="#DejaVuSans-61"/> | ||||
|      <use x="630.078125" xlink:href="#DejaVuSans-69"/> | ||||
|      <use x="657.861328" xlink:href="#DejaVuSans-72"/> | ||||
|      <use x="698.974609" xlink:href="#DejaVuSans-20"/> | ||||
|      <use x="730.761719" xlink:href="#DejaVuSans-75"/> | ||||
|      <use x="794.140625" xlink:href="#DejaVuSans-70"/> | ||||
|      <use x="857.617188" xlink:href="#DejaVuSans-64"/> | ||||
|      <use x="921.09375" xlink:href="#DejaVuSans-61"/> | ||||
|      <use x="982.373047" xlink:href="#DejaVuSans-74"/> | ||||
|      <use x="1021.582031" xlink:href="#DejaVuSans-65"/> | ||||
|      <use x="1083.105469" xlink:href="#DejaVuSans-20"/> | ||||
|      <use x="1114.892578" xlink:href="#DejaVuSans-63"/> | ||||
|      <use x="1169.873047" xlink:href="#DejaVuSans-6f"/> | ||||
|      <use x="1231.054688" xlink:href="#DejaVuSans-73"/> | ||||
|      <use x="1283.154297" xlink:href="#DejaVuSans-74"/> | ||||
|     </g> | ||||
|    </g> | ||||
|   </g> | ||||
|  </g> | ||||
|  <defs> | ||||
|   <clipPath id="p0570563b73"> | ||||
|    <rect height="182.44" width="356.155" x="45.929206" y="21.558281"/> | ||||
|   </clipPath> | ||||
|  </defs> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 28 KiB | 
							
								
								
									
										52
									
								
								wear-distribution.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										52
									
								
								wear-distribution.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| #!/usr/bin/env python | ||||
|  | ||||
| import matplotlib | ||||
| matplotlib.use('SVG') | ||||
| import matplotlib.pyplot as plt | ||||
| import matplotlib.gridspec as gridspec | ||||
| import numpy as np | ||||
|  | ||||
| matplotlib.rc('font', family='sans-serif', size=11) | ||||
| matplotlib.rc('axes', titlesize='medium', labelsize='medium') | ||||
| matplotlib.rc('xtick', labelsize='small') | ||||
| matplotlib.rc('ytick', labelsize='small') | ||||
|  | ||||
| np.random.seed(map(ord, "hello")) | ||||
|  | ||||
| gs = gridspec.GridSpec(nrows=2, ncols=2, height_ratios=[1, 2], | ||||
|         wspace=0.25, hspace=0.25) | ||||
|  | ||||
| fig = plt.figure(figsize=(7, 5.5)) | ||||
| ax1 = fig.add_subplot(gs[0, 0]) | ||||
| ax2 = fig.add_subplot(gs[0, 1], sharex=ax1, sharey=ax1) | ||||
| ax3 = fig.add_subplot(gs[1, :]) | ||||
|  | ||||
| # Convolution (I think?) of two types of uniform distributions under modulo | ||||
| w1 = np.random.randint(0, 100, 30) | ||||
| w2 = np.arange(0, 30, 1) | ||||
| w3 = np.array([w2 + i for i in w1]).flatten() % 100 | ||||
|  | ||||
| ax1.hist(w1, bins=100, range=(0,100), histtype='stepfilled') | ||||
| ax2.hist(w2, bins=100, range=(0,100), histtype='stepfilled') | ||||
| ax3.hist(w3, bins=100, range=(0,100), histtype='stepfilled') | ||||
|  | ||||
| ax1.set_title('Random offset') | ||||
| ax2.set_title('Linear allocation') | ||||
| ax3.set_title('Cumulative allocation') | ||||
|  | ||||
| ax1.set_ylabel('wear') | ||||
| ax1.set_yticks(np.arange(0, 3)) | ||||
| ax3.set_ylabel('wear') | ||||
| ax3.set_xlabel('block address') | ||||
|  | ||||
| for ax in [ax1,ax2,ax3]: | ||||
|     ax.set_xlim(0, 100) | ||||
|     ax.set_xticklabels([]) | ||||
|     ax.set_yticklabels([]) | ||||
|     ax.spines['right'].set_visible(False) | ||||
|     ax.spines['top'].set_visible(False) | ||||
|  | ||||
| ax1.text(109.25, 1, '$\\ast$') | ||||
|  | ||||
| fig.tight_layout() | ||||
| plt.savefig('wear-distribution.svg', bbox_inches="tight") | ||||
							
								
								
									
										2100
									
								
								wear-distribution.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2100
									
								
								wear-distribution.svg
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| After Width: | Height: | Size: 55 KiB | 
		Reference in New Issue
	
	Block a user