diff --git a/tests/population/plot_scaling.py b/tests/population/plot_scaling.py index f0594e227d43f032d44db91015e82b644373a474..b11d7fcd10b18c6743824f47248008920fe6ec89 100644 --- a/tests/population/plot_scaling.py +++ b/tests/population/plot_scaling.py @@ -1,3 +1,5 @@ +import matplotlib +import os import matplotlib.pyplot as plt import pandas as pd import numpy as np @@ -5,22 +7,17 @@ import numpy as np def calc_mean_and_std(arr): return np.mean(arr), np.std(arr) - +#### # Configure result_file = 'comparison_result.dat' result_file = 'comparison_result_astro1.dat' name_testcase = 'Astro1' +img_dir = 'scaling_plots' - - - - - -# +# Readout file results = [] - with open(result_file, 'r') as f: for line in f: res = list(eval(line.strip())) @@ -71,16 +68,20 @@ for i in unique_amt_cores: calculated_results.append(res_dict) - -# Plot +############################################################################################################################# +# Plot speed up and efficiency. x_position_shift = 0 y_position_shift = -0.05 max_speedup = 0 +# https://stackoverflow.com/questions/46323530/matplotlib-plot-two-x-axes-one-linear-and-one-with-logarithmic-ticks +fig, ax1 = plt.subplots() +ax2 = ax1.twinx() for amt_systems in unique_amt_systems: cores = [] speedup = [] std = [] + efficiency = [] for el in calculated_results: if el['systems']==amt_systems: @@ -88,29 +89,81 @@ for amt_systems in unique_amt_systems: cores.append(el['cores'] + x_position_shift) speedup.append(el['mean_ratio']) std.append(el['std_ratio']) + efficiency.append(el['mean_ratio']/el['cores']) if el['mean_ratio'] > max_speedup: max_speedup = el['mean_ratio'] - # add number of runs its based on - plt.text(el['cores'] + x_position_shift+0.01, el['mean_ratio']+y_position_shift, el['total_runs']) + ax1.text(el['cores'] + x_position_shift+0.01, el['mean_ratio']+y_position_shift, el['total_runs']) - plt.errorbar(cores, speedup, std, linestyle='None', marker='^', label='{} systems'.format(amt_systems)) + ax1.errorbar(cores, speedup, std, linestyle='None', marker='^', label='Speed up & efficiency of {} systems'.format(amt_systems)) + ax2.plot(cores, efficiency, alpha=0.5) x_position_shift += 0.1 -plt.title("Speed up ratio vs amount of cores for different amounts of systems on {}".format(name_testcase)) -plt.xlabel("Amount of cores used") -plt.ylabel("Speed up ratio (time_linear/time_parallel)") +ax1.set_title("Speed up ratio vs amount of cores for different amounts of systems on {}".format(name_testcase)) +ax1.set_xlabel("Amount of cores used") +ax1.set_ylabel("Speed up ratio (time_linear/time_parallel)") + +ax1.set_xlim(0, max(unique_amt_cores) + 4) +ax1.set_ylim(0, max_speedup + 2) +ax2.set_ylim(0, 1) + +ax1.grid() +ax1.legend(loc=4) +fig.savefig(os.path.join(img_dir, 'speedup_scaling_{}.{}'.format(name_testcase, 'png'))) +fig.savefig(os.path.join(img_dir, 'speedup_scaling_{}.{}'.format(name_testcase, 'pdf'))) +fig.savefig(os.path.join(img_dir, 'speedup_scaling_{}.{}'.format(name_testcase, 'eps'))) +plt.show() + +##### +# Plot run time +# fig = plt.figure() +# ax = fig.add_subplot(111) + +# color_options = ['blue', 'green', 'red', 'black', 'yellow', 'magenta'] + +# x_position_shift = 0 +# y_position_shift = -0.05 + +# colors = [color_options[i] for i in range(len(unique_amt_systems))] +# for i, amt_systems in enumerate(unique_amt_systems): + +# cores = [] + +# mean_times_linear = [] +# mean_times_multiprocessing = [] +# std_linear = [] +# std_mp = [] + +# for el in calculated_results: +# if el['systems']==amt_systems: +# cores.append(el['cores'] + x_position_shift) + +# mean_times_linear.append(el['mean_time_sequential']) +# std_linear.append(el['std_sequential']) + +# mean_times_multiprocessing.append(el['mean_time_multiprocessing']) +# std_mp.append(el['std_multiprocessing']) + +# # # add number of runs its based on +# # plt.text(el['cores'] + x_position_shift+0.01, el['mean_ratio']+y_position_shift, el['total_runs']) + +# ax.errorbar(cores, mean_times_linear, std_linear, color=colors[i], linewidth=1, marker='P', label='{} systems linear run'.format(amt_systems)) +# ax.errorbar(cores, mean_times_multiprocessing, std_multiprocessing, linewidth=1, color=colors[i], marker='d', label='{} systems MP run'.format(amt_systems)) +# x_position_shift += 0.1 -plt.xlim(0, max(unique_amt_cores) + 4) -plt.ylim(0, max_speedup + 2) +# ax.set_title("Total time for sequential and MP for different amounts of systems on {}".format(name_testcase)) +# ax.set_xlabel("Amount of cores used") +# ax.set_ylabel("Total time taken (s)") -plt.grid() -plt.legend() +# ax.set_xlim(0, max(unique_amt_cores) + 20) +# ax.set_yscale('log') +# ax.grid() +# ax.legend() -plt.savefig('scaling_{}.png'+'.png') -plt.savefig('scaling_{}.png'+'.pdf') -plt.savefig('scaling_{}.svg'+'.pdf') +# fig.savefig(os.path.join(img_dir, 'total_time_scaling_{}.{}'.format(name_testcase, 'png'))) +# fig.savefig(os.path.join(img_dir, 'total_time_scaling_{}.{}'.format(name_testcase, 'pdf'))) +# fig.savefig(os.path.join(img_dir, 'total_time_scaling_{}.{}'.format(name_testcase, 'eps'))) -plt.show() \ No newline at end of file +# plt.show() \ No newline at end of file diff --git a/tests/population/scaling_plots/speedup_scaling_Astro1.eps b/tests/population/scaling_plots/speedup_scaling_Astro1.eps new file mode 100644 index 0000000000000000000000000000000000000000..49d71a3748813b299d696d1cea0655c904398558 --- /dev/null +++ b/tests/population/scaling_plots/speedup_scaling_Astro1.eps @@ -0,0 +1,2382 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Title: scaling_plots/speedup_scaling_Astro1.eps +%%Creator: matplotlib version 3.1.2, http://matplotlib.org/ +%%CreationDate: Thu Jan 30 13:38:14 2020 +%%Orientation: portrait +%%BoundingBox: 75.6 223.20000000000002 536.4 568.8 +%%EndComments +%%BeginProlog +/mpldict 8 dict def +mpldict begin +/m { moveto } bind def +/l { lineto } bind def +/r { rlineto } bind def +/c { curveto } bind def +/cl { closepath } bind def +/box { +m +1 index 0 r +0 exch r +neg 0 r +cl +} bind def +/clipbox { +box +clip +newpath +} bind def +%!PS-Adobe-3.0 Resource-Font +%%Title: DejaVu Sans +%%Copyright: Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain +%%Creator: Converted from TrueType to type 3 by PPR +25 dict begin +/_d{bind def}bind def +/_m{moveto}_d +/_l{lineto}_d +/_cl{closepath eofill}_d +/_c{curveto}_d +/_sc{7 -1 roll{setcachedevice}{pop pop pop pop pop pop}ifelse}_d +/_e{exec}_d +/FontName /DejaVuSans def +/PaintType 0 def +/FontMatrix[.001 0 0 .001 0 0]def +/FontBBox[-1021 -463 1793 1232]def +/FontType 3 def +/Encoding [ /space /ampersand /parenleft /parenright /period /slash /zero /one /two /three /four /five /six /seven /eight /A /S /underscore /a /c /d /e /f /i /l /m /n /o /p /r /s /t /u /v /y ] def +/FontInfo 10 dict dup begin +/FamilyName (DejaVu Sans) def +/FullName (DejaVu Sans) def +/Notice (Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain ) def +/Weight (Book) def +/Version (Version 2.35) def +/ItalicAngle 0.0 def +/isFixedPitch false def +/UnderlinePosition -130 def +/UnderlineThickness 90 def +end readonly def +/CharStrings 36 dict dup begin +/.notdef 0 def +/space{318 0 0 0 0 0 _sc +}_d +/ampersand{{780 0 63 -13 749 742 _sc +243 392 _m +213 366 192 339 178 313 _c +164 287 157 259 157 231 _c +157 183 174 144 209 112 _c +243 80 287 65 339 65 _c +369 65 398 70 425 80 _c +452 90 478 106 502 127 _c +243 392 _l +312 447 _m +560 193 _l +579 221 594 252 605 285 _c +615 318 622 353 624 391 _c +715 391 _l +711 348 700 306 683 264 _c +666 222 643 180 613 139 _c +749 0 _l +626 0 _l +}_e{556 72 _l +522 42 486 21 449 7 _c +412 -6 372 -13 330 -13 _c +251 -13 187 9 137 53 _c +87 97 63 155 63 225 _c +63 267 73 306 95 342 _c +117 378 150 413 194 446 _c +178 466 166 487 158 507 _c +150 527 146 547 146 567 _c +146 619 164 662 200 694 _c +236 726 284 742 344 742 _c +371 742 398 739 425 733 _c +451 727 479 719 507 707 _c +507 618 _l +478 633 451 645 425 653 _c +}_e{399 661 376 665 354 665 _c +320 665 292 656 271 638 _c +249 620 239 596 239 568 _c +239 551 243 534 253 518 _c +263 501 282 477 312 447 _c +_cl}_e}_d +/parenleft{390 0 86 -131 310 759 _sc +310 759 _m +266 683 234 609 213 536 _c +191 463 181 389 181 314 _c +181 238 191 164 213 91 _c +234 17 266 -56 310 -131 _c +232 -131 _l +183 -54 146 20 122 94 _c +98 168 86 241 86 314 _c +86 386 98 459 122 533 _c +146 607 182 682 232 759 _c +310 759 _l +_cl}_d +/parenright{390 0 80 -131 304 759 _sc +80 759 _m +158 759 _l +206 682 243 607 267 533 _c +291 459 304 386 304 314 _c +304 241 291 168 267 94 _c +243 20 206 -54 158 -131 _c +80 -131 _l +123 -56 155 17 177 91 _c +198 164 209 238 209 314 _c +209 389 198 463 177 536 _c +155 609 123 683 80 759 _c +_cl}_d +/period{318 0 107 0 210 124 _sc +107 124 _m +210 124 _l +210 0 _l +107 0 _l +107 124 _l +_cl}_d +/slash{337 0 0 -92 337 729 _sc +254 729 _m +337 729 _l +83 -92 _l +0 -92 _l +254 729 _l +_cl}_d +/zero{636 0 66 -13 570 742 _sc +318 664 _m +267 664 229 639 203 589 _c +177 539 165 464 165 364 _c +165 264 177 189 203 139 _c +229 89 267 64 318 64 _c +369 64 407 89 433 139 _c +458 189 471 264 471 364 _c +471 464 458 539 433 589 _c +407 639 369 664 318 664 _c +318 742 _m +399 742 461 709 505 645 _c +548 580 570 486 570 364 _c +570 241 548 147 505 83 _c +461 19 399 -13 318 -13 _c +236 -13 173 19 130 83 _c +87 147 66 241 66 364 _c +66 486 87 580 130 645 _c +173 709 236 742 318 742 _c +_cl}_d +/one{636 0 110 0 544 729 _sc +124 83 _m +285 83 _l +285 639 _l +110 604 _l +110 694 _l +284 729 _l +383 729 _l +383 83 _l +544 83 _l +544 0 _l +124 0 _l +124 83 _l +_cl}_d +/two{{636 0 73 0 536 742 _sc +192 83 _m +536 83 _l +536 0 _l +73 0 _l +73 83 _l +110 121 161 173 226 239 _c +290 304 331 346 348 365 _c +380 400 402 430 414 455 _c +426 479 433 504 433 528 _c +433 566 419 598 392 622 _c +365 646 330 659 286 659 _c +255 659 222 653 188 643 _c +154 632 117 616 78 594 _c +78 694 _l +118 710 155 722 189 730 _c +223 738 255 742 284 742 _c +}_e{359 742 419 723 464 685 _c +509 647 532 597 532 534 _c +532 504 526 475 515 449 _c +504 422 484 390 454 354 _c +446 344 420 317 376 272 _c +332 227 271 164 192 83 _c +_cl}_e}_d +/three{{636 0 76 -13 556 742 _sc +406 393 _m +453 383 490 362 516 330 _c +542 298 556 258 556 212 _c +556 140 531 84 482 45 _c +432 6 362 -13 271 -13 _c +240 -13 208 -10 176 -4 _c +144 1 110 10 76 22 _c +76 117 _l +103 101 133 89 166 81 _c +198 73 232 69 268 69 _c +330 69 377 81 409 105 _c +441 129 458 165 458 212 _c +458 254 443 288 413 312 _c +383 336 341 349 287 349 _c +}_e{202 349 _l +202 430 _l +291 430 _l +339 430 376 439 402 459 _c +428 478 441 506 441 543 _c +441 580 427 609 401 629 _c +374 649 336 659 287 659 _c +260 659 231 656 200 650 _c +169 644 135 635 98 623 _c +98 711 _l +135 721 170 729 203 734 _c +235 739 266 742 296 742 _c +370 742 429 725 473 691 _c +517 657 539 611 539 553 _c +539 513 527 479 504 451 _c +481 423 448 403 406 393 _c +_cl}_e}_d +/four{636 0 49 0 580 729 _sc +378 643 _m +129 254 _l +378 254 _l +378 643 _l +352 729 _m +476 729 _l +476 254 _l +580 254 _l +580 172 _l +476 172 _l +476 0 _l +378 0 _l +378 172 _l +49 172 _l +49 267 _l +352 729 _l +_cl}_d +/five{{636 0 77 -13 549 729 _sc +108 729 _m +495 729 _l +495 646 _l +198 646 _l +198 467 _l +212 472 227 476 241 478 _c +255 480 270 482 284 482 _c +365 482 429 459 477 415 _c +525 370 549 310 549 234 _c +549 155 524 94 475 51 _c +426 8 357 -13 269 -13 _c +238 -13 207 -10 175 -6 _c +143 -1 111 6 77 17 _c +77 116 _l +106 100 136 88 168 80 _c +199 72 232 69 267 69 _c +}_e{323 69 368 83 401 113 _c +433 143 450 183 450 234 _c +450 284 433 324 401 354 _c +368 384 323 399 267 399 _c +241 399 214 396 188 390 _c +162 384 135 375 108 363 _c +108 729 _l +_cl}_e}_d +/six{{636 0 70 -13 573 742 _sc +330 404 _m +286 404 251 388 225 358 _c +199 328 186 286 186 234 _c +186 181 199 139 225 109 _c +251 79 286 64 330 64 _c +374 64 409 79 435 109 _c +461 139 474 181 474 234 _c +474 286 461 328 435 358 _c +409 388 374 404 330 404 _c +526 713 _m +526 623 _l +501 635 476 644 451 650 _c +425 656 400 659 376 659 _c +310 659 260 637 226 593 _c +}_e{192 549 172 482 168 394 _c +187 422 211 444 240 459 _c +269 474 301 482 336 482 _c +409 482 467 459 509 415 _c +551 371 573 310 573 234 _c +573 159 550 99 506 54 _c +462 9 403 -13 330 -13 _c +246 -13 181 19 137 83 _c +92 147 70 241 70 364 _c +70 479 97 571 152 639 _c +206 707 280 742 372 742 _c +396 742 421 739 447 735 _c +472 730 498 723 526 713 _c +_cl}_e}_d +/seven{636 0 82 0 551 729 _sc +82 729 _m +551 729 _l +551 687 _l +286 0 _l +183 0 _l +432 646 _l +82 646 _l +82 729 _l +_cl}_d +/eight{{636 0 68 -13 568 742 _sc +318 346 _m +271 346 234 333 207 308 _c +180 283 167 249 167 205 _c +167 161 180 126 207 101 _c +234 76 271 64 318 64 _c +364 64 401 76 428 102 _c +455 127 469 161 469 205 _c +469 249 455 283 429 308 _c +402 333 365 346 318 346 _c +219 388 _m +177 398 144 418 120 447 _c +96 476 85 511 85 553 _c +85 611 105 657 147 691 _c +188 725 245 742 318 742 _c +}_e{390 742 447 725 489 691 _c +530 657 551 611 551 553 _c +551 511 539 476 515 447 _c +491 418 459 398 417 388 _c +464 377 501 355 528 323 _c +554 291 568 251 568 205 _c +568 134 546 80 503 43 _c +459 5 398 -13 318 -13 _c +237 -13 175 5 132 43 _c +89 80 68 134 68 205 _c +68 251 81 291 108 323 _c +134 355 171 377 219 388 _c +183 544 _m +183 506 194 476 218 455 _c +}_e{242 434 275 424 318 424 _c +360 424 393 434 417 455 _c +441 476 453 506 453 544 _c +453 582 441 611 417 632 _c +393 653 360 664 318 664 _c +275 664 242 653 218 632 _c +194 611 183 582 183 544 _c +_cl}_e}_d +/A{684 0 8 0 676 729 _sc +342 632 _m +208 269 _l +476 269 _l +342 632 _l +286 729 _m +398 729 _l +676 0 _l +573 0 _l +507 187 _l +178 187 _l +112 0 _l +8 0 _l +286 729 _l +_cl}_d +/S{{635 0 66 -13 579 742 _sc +535 705 _m +535 609 _l +497 627 462 640 429 649 _c +395 657 363 662 333 662 _c +279 662 237 651 208 631 _c +179 610 165 580 165 542 _c +165 510 174 485 194 469 _c +213 452 250 439 304 429 _c +364 417 _l +437 403 491 378 526 343 _c +561 307 579 260 579 201 _c +579 130 555 77 508 41 _c +460 5 391 -13 300 -13 _c +265 -13 228 -9 189 -2 _c +}_e{150 5 110 16 69 32 _c +69 134 _l +109 111 148 94 186 83 _c +224 71 262 66 300 66 _c +356 66 399 77 430 99 _c +460 121 476 152 476 194 _c +476 230 465 258 443 278 _c +421 298 385 313 335 323 _c +275 335 _l +201 349 148 372 115 404 _c +82 435 66 478 66 534 _c +66 598 88 649 134 686 _c +179 723 242 742 322 742 _c +356 742 390 739 426 733 _c +461 727 497 717 535 705 _c +}_e{_cl}_e}_d +/underscore{500 0 -9 -235 510 -165 _sc +510 -165 _m +510 -235 _l +-9 -235 _l +-9 -165 _l +510 -165 _l +_cl}_d +/a{{613 0 60 -13 522 560 _sc +343 275 _m +270 275 220 266 192 250 _c +164 233 150 205 150 165 _c +150 133 160 107 181 89 _c +202 70 231 61 267 61 _c +317 61 357 78 387 114 _c +417 149 432 196 432 255 _c +432 275 _l +343 275 _l +522 312 _m +522 0 _l +432 0 _l +432 83 _l +411 49 385 25 355 10 _c +325 -5 287 -13 243 -13 _c +187 -13 142 2 109 33 _c +76 64 60 106 60 159 _c +}_e{60 220 80 266 122 298 _c +163 329 224 345 306 345 _c +432 345 _l +432 354 _l +432 395 418 427 391 450 _c +364 472 326 484 277 484 _c +245 484 215 480 185 472 _c +155 464 127 453 100 439 _c +100 522 _l +132 534 164 544 195 550 _c +226 556 256 560 286 560 _c +365 560 424 539 463 498 _c +502 457 522 395 522 312 _c +_cl}_e}_d +/c{{550 0 55 -13 488 560 _sc +488 526 _m +488 442 _l +462 456 437 466 411 473 _c +385 480 360 484 334 484 _c +276 484 230 465 198 428 _c +166 391 150 339 150 273 _c +150 206 166 154 198 117 _c +230 80 276 62 334 62 _c +360 62 385 65 411 72 _c +437 79 462 90 488 104 _c +488 21 _l +462 9 436 0 410 -5 _c +383 -10 354 -13 324 -13 _c +242 -13 176 12 128 64 _c +}_e{79 115 55 185 55 273 _c +55 362 79 432 128 483 _c +177 534 244 560 330 560 _c +358 560 385 557 411 551 _c +437 545 463 537 488 526 _c +_cl}_e}_d +/d{{635 0 55 -13 544 760 _sc +454 464 _m +454 760 _l +544 760 _l +544 0 _l +454 0 _l +454 82 _l +435 49 411 25 382 10 _c +353 -5 319 -13 279 -13 _c +213 -13 159 13 117 65 _c +75 117 55 187 55 273 _c +55 359 75 428 117 481 _c +159 533 213 560 279 560 _c +319 560 353 552 382 536 _c +411 520 435 496 454 464 _c +148 273 _m +148 207 161 155 188 117 _c +215 79 253 61 301 61 _c +}_e{348 61 385 79 413 117 _c +440 155 454 207 454 273 _c +454 339 440 390 413 428 _c +385 466 348 485 301 485 _c +253 485 215 466 188 428 _c +161 390 148 339 148 273 _c +_cl}_e}_d +/e{{615 0 55 -13 562 560 _sc +562 296 _m +562 252 _l +149 252 _l +153 190 171 142 205 110 _c +238 78 284 62 344 62 _c +378 62 412 66 444 74 _c +476 82 509 95 541 113 _c +541 28 _l +509 14 476 3 442 -3 _c +408 -9 373 -13 339 -13 _c +251 -13 182 12 131 62 _c +80 112 55 181 55 268 _c +55 357 79 428 127 481 _c +175 533 241 560 323 560 _c +397 560 455 536 498 489 _c +}_e{540 441 562 377 562 296 _c +472 322 _m +471 371 457 410 431 440 _c +404 469 368 484 324 484 _c +274 484 234 469 204 441 _c +174 413 156 373 152 322 _c +472 322 _l +_cl}_e}_d +/f{352 0 23 0 371 760 _sc +371 760 _m +371 685 _l +285 685 _l +253 685 230 678 218 665 _c +205 652 199 629 199 595 _c +199 547 _l +347 547 _l +347 477 _l +199 477 _l +199 0 _l +109 0 _l +109 477 _l +23 477 _l +23 547 _l +109 547 _l +109 585 _l +109 645 123 690 151 718 _c +179 746 224 760 286 760 _c +371 760 _l +_cl}_d +/i{278 0 94 0 184 760 _sc +94 547 _m +184 547 _l +184 0 _l +94 0 _l +94 547 _l +94 760 _m +184 760 _l +184 646 _l +94 646 _l +94 760 _l +_cl}_d +/l{278 0 94 0 184 760 _sc +94 760 _m +184 760 _l +184 0 _l +94 0 _l +94 760 _l +_cl}_d +/m{{974 0 91 0 889 560 _sc +520 442 _m +542 482 569 511 600 531 _c +631 550 668 560 711 560 _c +767 560 811 540 842 500 _c +873 460 889 403 889 330 _c +889 0 _l +799 0 _l +799 327 _l +799 379 789 418 771 444 _c +752 469 724 482 686 482 _c +639 482 602 466 575 435 _c +548 404 535 362 535 309 _c +535 0 _l +445 0 _l +445 327 _l +445 379 435 418 417 444 _c +398 469 369 482 331 482 _c +}_e{285 482 248 466 221 435 _c +194 404 181 362 181 309 _c +181 0 _l +91 0 _l +91 547 _l +181 547 _l +181 462 _l +201 495 226 520 255 536 _c +283 552 317 560 357 560 _c +397 560 430 550 458 530 _c +486 510 506 480 520 442 _c +_cl}_e}_d +/n{634 0 91 0 549 560 _sc +549 330 _m +549 0 _l +459 0 _l +459 327 _l +459 379 448 417 428 443 _c +408 469 378 482 338 482 _c +289 482 251 466 223 435 _c +195 404 181 362 181 309 _c +181 0 _l +91 0 _l +91 547 _l +181 547 _l +181 462 _l +202 494 227 519 257 535 _c +286 551 320 560 358 560 _c +420 560 468 540 500 501 _c +532 462 549 405 549 330 _c +_cl}_d +/o{612 0 55 -13 557 560 _sc +306 484 _m +258 484 220 465 192 427 _c +164 389 150 338 150 273 _c +150 207 163 156 191 118 _c +219 80 257 62 306 62 _c +354 62 392 80 420 118 _c +448 156 462 207 462 273 _c +462 337 448 389 420 427 _c +392 465 354 484 306 484 _c +306 560 _m +384 560 445 534 490 484 _c +534 433 557 363 557 273 _c +557 183 534 113 490 63 _c +445 12 384 -13 306 -13 _c +227 -13 165 12 121 63 _c +77 113 55 183 55 273 _c +55 363 77 433 121 484 _c +165 534 227 560 306 560 _c +_cl}_d +/p{{635 0 91 -207 580 560 _sc +181 82 _m +181 -207 _l +91 -207 _l +91 547 _l +181 547 _l +181 464 _l +199 496 223 520 252 536 _c +281 552 316 560 356 560 _c +422 560 476 533 518 481 _c +559 428 580 359 580 273 _c +580 187 559 117 518 65 _c +476 13 422 -13 356 -13 _c +316 -13 281 -5 252 10 _c +223 25 199 49 181 82 _c +487 273 _m +487 339 473 390 446 428 _c +418 466 381 485 334 485 _c +}_e{286 485 249 466 222 428 _c +194 390 181 339 181 273 _c +181 207 194 155 222 117 _c +249 79 286 61 334 61 _c +381 61 418 79 446 117 _c +473 155 487 207 487 273 _c +_cl}_e}_d +/r{411 0 91 0 411 560 _sc +411 463 _m +401 469 390 473 378 476 _c +366 478 353 480 339 480 _c +288 480 249 463 222 430 _c +194 397 181 350 181 288 _c +181 0 _l +91 0 _l +91 547 _l +181 547 _l +181 462 _l +199 495 224 520 254 536 _c +284 552 321 560 365 560 _c +371 560 378 559 386 559 _c +393 558 401 557 411 555 _c +411 463 _l +_cl}_d +/s{{521 0 54 -13 472 560 _sc +443 531 _m +443 446 _l +417 458 391 468 364 475 _c +336 481 308 485 279 485 _c +234 485 200 478 178 464 _c +156 450 145 430 145 403 _c +145 382 153 366 169 354 _c +185 342 217 330 265 320 _c +296 313 _l +360 299 405 279 432 255 _c +458 230 472 195 472 151 _c +472 100 452 60 412 31 _c +372 1 316 -13 246 -13 _c +216 -13 186 -10 154 -5 _c +}_e{122 0 89 8 54 20 _c +54 113 _l +87 95 120 82 152 74 _c +184 65 216 61 248 61 _c +290 61 323 68 346 82 _c +368 96 380 117 380 144 _c +380 168 371 187 355 200 _c +339 213 303 226 247 238 _c +216 245 _l +160 257 119 275 95 299 _c +70 323 58 356 58 399 _c +58 450 76 490 112 518 _c +148 546 200 560 268 560 _c +301 560 332 557 362 552 _c +391 547 418 540 443 531 _c +}_e{_cl}_e}_d +/t{392 0 27 0 368 702 _sc +183 702 _m +183 547 _l +368 547 _l +368 477 _l +183 477 _l +183 180 _l +183 135 189 106 201 94 _c +213 81 238 75 276 75 _c +368 75 _l +368 0 _l +276 0 _l +206 0 158 13 132 39 _c +106 65 93 112 93 180 _c +93 477 _l +27 477 _l +27 547 _l +93 547 _l +93 702 _l +183 702 _l +_cl}_d +/u{634 0 85 -13 543 560 _sc +85 216 _m +85 547 _l +175 547 _l +175 219 _l +175 167 185 129 205 103 _c +225 77 255 64 296 64 _c +344 64 383 79 411 110 _c +439 141 453 183 453 237 _c +453 547 _l +543 547 _l +543 0 _l +453 0 _l +453 84 _l +431 50 405 26 377 10 _c +348 -5 315 -13 277 -13 _c +214 -13 166 6 134 45 _c +101 83 85 140 85 216 _c +311 560 _m +311 560 _l +_cl}_d +/v{592 0 30 0 562 547 _sc +30 547 _m +125 547 _l +296 88 _l +467 547 _l +562 547 _l +357 0 _l +235 0 _l +30 547 _l +_cl}_d +/y{592 0 30 -207 562 547 _sc +322 -50 _m +296 -114 271 -157 247 -177 _c +223 -197 191 -207 151 -207 _c +79 -207 _l +79 -132 _l +132 -132 _l +156 -132 175 -126 189 -114 _c +203 -102 218 -75 235 -31 _c +251 9 _l +30 547 _l +125 547 _l +296 119 _l +467 547 _l +562 547 _l +322 -50 _l +_cl}_d +end readonly def + +/BuildGlyph + {exch begin + CharStrings exch + 2 copy known not{pop /.notdef}if + true 3 1 roll get exec + end}_d + +/BuildChar { + 1 index /Encoding get exch get + 1 index /BuildGlyph get exec +}_d + +FontName currentdict end definefont pop +end +%%EndProlog +mpldict begin +75.6 223.2 translate +460.8 345.6 0 0 clipbox +gsave +0 0 m +460.8 0 l +460.8 345.6 l +0 345.6 l +cl +1.000 setgray +fill +grestore +gsave +57.6 38.016 m +414.72 38.016 l +414.72 304.128 l +57.6 304.128 l +cl +1.000 setgray +fill +grestore +0.800 setlinewidth +1 setlinejoin +2 setlinecap +[] 0 setdash +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 38.016 m +57.6 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 38.016 o +grestore +/DejaVuSans findfont +10.000 scalefont +setfont +gsave +54.420313 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +107.2 38.016 m +107.2 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +107.2 38.016 o +grestore +gsave +104.020313 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /five glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +156.8 38.016 m +156.8 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +156.8 38.016 o +grestore +gsave +150.440625 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +206.4 38.016 m +206.4 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +206.4 38.016 o +grestore +gsave +200.040625 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /five glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +256 38.016 m +256 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +256 38.016 o +grestore +gsave +249.640625 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /two glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +305.6 38.016 m +305.6 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +305.6 38.016 o +grestore +gsave +299.240625 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /two glyphshow +6.362305 0.000000 m /five glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +355.2 38.016 m +355.2 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +355.2 38.016 o +grestore +gsave +348.840625 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /three glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +404.8 38.016 m +404.8 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +404.8 38.016 o +grestore +gsave +398.440625 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /three glyphshow +6.362305 0.000000 m /five glyphshow +grestore +gsave +181.308437 9.750375 translate +0.000000 rotate +0.000000 0.000000 m /A glyphshow +6.840820 0.000000 m /m glyphshow +16.582031 0.000000 m /o glyphshow +22.700195 0.000000 m /u glyphshow +29.038086 0.000000 m /n glyphshow +35.375977 0.000000 m /t glyphshow +39.296875 0.000000 m /space glyphshow +42.475586 0.000000 m /o glyphshow +48.593750 0.000000 m /f glyphshow +52.114258 0.000000 m /space glyphshow +55.292969 0.000000 m /c glyphshow +60.791016 0.000000 m /o glyphshow +66.909180 0.000000 m /r glyphshow +71.020508 0.000000 m /e glyphshow +77.172852 0.000000 m /s glyphshow +82.382812 0.000000 m /space glyphshow +85.561523 0.000000 m /u glyphshow +91.899414 0.000000 m /s glyphshow +97.109375 0.000000 m /e glyphshow +103.261719 0.000000 m /d glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 38.016 m +414.72 38.016 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 38.016 o +grestore +gsave +34.693750 34.219125 translate +0.000000 rotate +0.000000 0.000000 m /zero glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 74.846409 m +414.72 74.846409 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 74.8464 o +grestore +gsave +34.693750 71.049534 translate +0.000000 rotate +0.000000 0.000000 m /two glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /five glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 111.676819 m +414.72 111.676819 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 111.677 o +grestore +gsave +34.693750 107.879944 translate +0.000000 rotate +0.000000 0.000000 m /five glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 148.507228 m +414.72 148.507228 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 148.507 o +grestore +gsave +34.693750 144.710353 translate +0.000000 rotate +0.000000 0.000000 m /seven glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /five glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 185.337638 m +414.72 185.337638 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 185.338 o +grestore +gsave +28.334375 181.540763 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /period glyphshow +15.903320 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 222.168047 m +414.72 222.168047 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 222.168 o +grestore +gsave +28.334375 218.371172 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /two glyphshow +12.724609 0.000000 m /period glyphshow +15.903320 0.000000 m /five glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 258.998457 m +414.72 258.998457 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 258.998 o +grestore +gsave +28.334375 255.201582 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /five glyphshow +12.724609 0.000000 m /period glyphshow +15.903320 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 295.828866 m +414.72 295.828866 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 295.829 o +grestore +gsave +28.334375 292.031991 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /seven glyphshow +12.724609 0.000000 m /period glyphshow +15.903320 0.000000 m /five glyphshow +grestore +gsave +21.975000 66.790750 translate +90.000000 rotate +0.000000 0.000000 m /S glyphshow +6.347656 0.000000 m /p glyphshow +12.695312 0.000000 m /e glyphshow +18.847656 0.000000 m /e glyphshow +25.000000 0.000000 m /d glyphshow +31.347656 0.000000 m /space glyphshow +34.526367 0.000000 m /u glyphshow +40.864258 0.000000 m /p glyphshow +47.211914 0.000000 m /space glyphshow +50.390625 0.000000 m /r glyphshow +54.501953 0.000000 m /a glyphshow +60.629883 0.000000 m /t glyphshow +64.550781 0.000000 m /i glyphshow +67.329102 0.000000 m /o glyphshow +73.447266 0.000000 m /space glyphshow +76.625977 0.000000 m /parenleft glyphshow +80.527344 0.000000 m /t glyphshow +84.448242 0.000000 m /i glyphshow +87.226562 0.000000 m /m glyphshow +96.967773 0.000000 m /e glyphshow +103.120117 0.000000 m /underscore glyphshow +108.120117 0.000000 m /l glyphshow +110.898438 0.000000 m /i glyphshow +113.676758 0.000000 m /n glyphshow +120.014648 0.000000 m /e glyphshow +126.166992 0.000000 m /a glyphshow +132.294922 0.000000 m /r glyphshow +136.406250 0.000000 m /slash glyphshow +139.775391 0.000000 m /t glyphshow +143.696289 0.000000 m /i glyphshow +146.474609 0.000000 m /m glyphshow +156.215820 0.000000 m /e glyphshow +162.368164 0.000000 m /underscore glyphshow +167.368164 0.000000 m /p glyphshow +173.715820 0.000000 m /a glyphshow +179.843750 0.000000 m /r glyphshow +183.955078 0.000000 m /a glyphshow +190.083008 0.000000 m /l glyphshow +192.861328 0.000000 m /l glyphshow +195.639648 0.000000 m /e glyphshow +201.791992 0.000000 m /l glyphshow +204.570312 0.000000 m /parenright glyphshow +grestore +1.500 setlinewidth +0.122 0.467 0.706 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +97.28 93.11321 m +97.28 94.937504 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +136.96 138.726819 m +136.96 143.152523 l +stroke +grestore +1.000 0.498 0.055 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +98.272 92.6672 m +98.272 94.395781 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +137.952 141.230754 m +137.952 143.810763 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +217.312 234.854494 m +217.312 242.886387 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +376.032 270.31909 m +376.032 272.021243 l +stroke +grestore +0.173 0.627 0.173 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +99.264 93.561171 m +99.264 95.050768 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +138.944 142.690301 m +138.944 144.958992 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +218.304 238.15113 m +218.304 243.654053 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +377.024 272.364581 m +377.024 276.918413 l +stroke +grestore +0.839 0.153 0.157 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +100.256 94.167442 m +100.256 94.827622 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +139.936 143.074747 m +139.936 143.925556 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +219.296 239.160228 m +219.296 249.373902 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +378.016 268.236873 m +378.016 281.090472 l +stroke +grestore +1.000 setlinewidth +0 setlinejoin +0.122 0.467 0.706 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +0 3 m +-3 -3 l +3 -3 l +cl + +gsave +0.122 0.467 0.706 setrgbcolor +fill +grestore +stroke +grestore +} bind def +97.28 94.0254 o +136.96 140.94 o +grestore +1.000 0.498 0.055 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +0 3 m +-3 -3 l +3 -3 l +cl + +gsave +1.000 0.498 0.055 setrgbcolor +fill +grestore +stroke +grestore +} bind def +98.272 93.5315 o +137.952 142.521 o +217.312 238.87 o +376.032 271.17 o +grestore +0.173 0.627 0.173 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +0 3 m +-3 -3 l +3 -3 l +cl + +gsave +0.173 0.627 0.173 setrgbcolor +fill +grestore +stroke +grestore +} bind def +99.264 94.306 o +138.944 143.825 o +218.304 240.903 o +377.024 274.641 o +grestore +0.839 0.153 0.157 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +0 3 m +-3 -3 l +3 -3 l +cl + +gsave +0.839 0.153 0.157 setrgbcolor +fill +grestore +stroke +grestore +} bind def +100.256 94.4975 o +139.936 143.5 o +219.296 244.267 o +378.016 274.664 o +grestore +0.800 setlinewidth +2 setlinecap +[] 0 setdash +0.000 setgray +gsave +57.6 38.016 m +57.6 304.128 l +stroke +grestore +gsave +414.72 38.016 m +414.72 304.128 l +stroke +grestore +gsave +57.6 38.016 m +414.72 38.016 l +stroke +grestore +gsave +57.6 304.128 m +414.72 304.128 l +stroke +grestore +gsave +97.379200 93.288749 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /two glyphshow +grestore +gsave +137.059200 140.203063 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /two glyphshow +grestore +gsave +98.371200 92.794882 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /two glyphshow +grestore +gsave +138.051200 141.784150 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /two glyphshow +grestore +gsave +217.411200 238.133832 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /two glyphshow +grestore +gsave +376.131200 270.433558 translate +0.000000 rotate +0.000000 0.000000 m /four glyphshow +grestore +gsave +99.363200 93.569361 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /one glyphshow +grestore +gsave +139.043200 143.088038 translate +0.000000 rotate +0.000000 0.000000 m /eight glyphshow +grestore +gsave +218.403200 240.165983 translate +0.000000 rotate +0.000000 0.000000 m /eight glyphshow +grestore +gsave +377.123200 273.904889 translate +0.000000 rotate +0.000000 0.000000 m /eight glyphshow +grestore +gsave +100.355200 93.760924 translate +0.000000 rotate +0.000000 0.000000 m /four glyphshow +grestore +gsave +140.035200 142.763544 translate +0.000000 rotate +0.000000 0.000000 m /four glyphshow +grestore +gsave +219.395200 243.530457 translate +0.000000 rotate +0.000000 0.000000 m /four glyphshow +grestore +gsave +378.115200 273.927064 translate +0.000000 rotate +0.000000 0.000000 m /four glyphshow +grestore +/DejaVuSans findfont +12.000 scalefont +setfont +gsave +1.363125 310.128000 translate +0.000000 rotate +0.000000 0.000000 m /S glyphshow +7.617188 0.000000 m /p glyphshow +15.234375 0.000000 m /e glyphshow +22.617188 0.000000 m /e glyphshow +30.000000 0.000000 m /d glyphshow +37.617188 0.000000 m /space glyphshow +41.431641 0.000000 m /u glyphshow +49.037109 0.000000 m /p glyphshow +56.654297 0.000000 m /space glyphshow +60.468750 0.000000 m /r glyphshow +65.402344 0.000000 m /a glyphshow +72.755859 0.000000 m /t glyphshow +77.460938 0.000000 m /i glyphshow +80.794922 0.000000 m /o glyphshow +88.136719 0.000000 m /space glyphshow +91.951172 0.000000 m /v glyphshow +99.052734 0.000000 m /s glyphshow +105.304688 0.000000 m /space glyphshow +109.119141 0.000000 m /a glyphshow +116.472656 0.000000 m /m glyphshow +128.162109 0.000000 m /o glyphshow +135.503906 0.000000 m /u glyphshow +143.109375 0.000000 m /n glyphshow +150.714844 0.000000 m /t glyphshow +155.419922 0.000000 m /space glyphshow +159.234375 0.000000 m /o glyphshow +166.576172 0.000000 m /f glyphshow +170.800781 0.000000 m /space glyphshow +174.615234 0.000000 m /c glyphshow +181.212891 0.000000 m /o glyphshow +188.554688 0.000000 m /r glyphshow +193.488281 0.000000 m /e glyphshow +200.871094 0.000000 m /s glyphshow +207.123047 0.000000 m /space glyphshow +210.937500 0.000000 m /f glyphshow +215.162109 0.000000 m /o glyphshow +222.503906 0.000000 m /r glyphshow +227.437500 0.000000 m /space glyphshow +231.251953 0.000000 m /d glyphshow +238.869141 0.000000 m /i glyphshow +242.203125 0.000000 m /f glyphshow +246.427734 0.000000 m /f glyphshow +250.652344 0.000000 m /e glyphshow +258.035156 0.000000 m /r glyphshow +262.968750 0.000000 m /e glyphshow +270.351562 0.000000 m /n glyphshow +277.957031 0.000000 m /t glyphshow +282.662109 0.000000 m /space glyphshow +286.476562 0.000000 m /a glyphshow +293.830078 0.000000 m /m glyphshow +305.519531 0.000000 m /o glyphshow +312.861328 0.000000 m /u glyphshow +320.466797 0.000000 m /n glyphshow +328.072266 0.000000 m /t glyphshow +332.777344 0.000000 m /s glyphshow +339.029297 0.000000 m /space glyphshow +342.843750 0.000000 m /o glyphshow +350.185547 0.000000 m /f glyphshow +354.410156 0.000000 m /space glyphshow +358.224609 0.000000 m /s glyphshow +364.476562 0.000000 m /y glyphshow +371.578125 0.000000 m /s glyphshow +377.830078 0.000000 m /t glyphshow +382.535156 0.000000 m /e glyphshow +389.917969 0.000000 m /m glyphshow +401.607422 0.000000 m /s glyphshow +407.859375 0.000000 m /space glyphshow +411.673828 0.000000 m /o glyphshow +419.015625 0.000000 m /n glyphshow +426.621094 0.000000 m /space glyphshow +430.435547 0.000000 m /A glyphshow +438.644531 0.000000 m /s glyphshow +444.896484 0.000000 m /t glyphshow +449.601562 0.000000 m /r glyphshow +454.535156 0.000000 m /o glyphshow +461.876953 0.000000 m /one glyphshow +grestore +1.000 setlinewidth +0 setlinecap +0.800 setgray +gsave +173.75125 43.016 m +407.72 43.016 l +409.053333 43.016 409.72 43.682667 409.72 45.016 c +409.72 102.7035 l +409.72 104.036833 409.053333 104.7035 407.72 104.7035 c +173.75125 104.7035 l +172.417917 104.7035 171.75125 104.036833 171.75125 102.7035 c +171.75125 45.016 l +171.75125 43.682667 172.417917 43.016 173.75125 43.016 c +cl +gsave +1.000 setgray +fill +grestore +stroke +grestore +1.500 setlinewidth +1 setlinejoin +[] 0 setdash +0.122 0.467 0.706 setrgbcolor +gsave +185.75125 91.60975 m +185.75125 101.60975 l +stroke +grestore +1.000 setlinewidth +0 setlinejoin +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +0 3 m +-3 -3 l +3 -3 l +cl + +gsave +0.122 0.467 0.706 setrgbcolor +fill +grestore +stroke +grestore +} bind def +185.751 96.6097 o +grestore +0.000 setgray +/DejaVuSans findfont +10.000 scalefont +setfont +gsave +203.751250 93.109750 translate +0.000000 rotate +0.000000 0.000000 m /S glyphshow +6.347656 0.000000 m /p glyphshow +12.695312 0.000000 m /e glyphshow +18.847656 0.000000 m /e glyphshow +25.000000 0.000000 m /d glyphshow +31.347656 0.000000 m /space glyphshow +34.526367 0.000000 m /u glyphshow +40.864258 0.000000 m /p glyphshow +47.211914 0.000000 m /space glyphshow +50.390625 0.000000 m /ampersand glyphshow +58.188477 0.000000 m /space glyphshow +61.367188 0.000000 m /e glyphshow +67.519531 0.000000 m /f glyphshow +71.040039 0.000000 m /f glyphshow +74.560547 0.000000 m /i glyphshow +77.338867 0.000000 m /c glyphshow +82.836914 0.000000 m /i glyphshow +85.615234 0.000000 m /e glyphshow +91.767578 0.000000 m /n glyphshow +98.105469 0.000000 m /c glyphshow +103.603516 0.000000 m /y glyphshow +109.521484 0.000000 m /space glyphshow +112.700195 0.000000 m /o glyphshow +118.818359 0.000000 m /f glyphshow +122.338867 0.000000 m /space glyphshow +125.517578 0.000000 m /one glyphshow +131.879883 0.000000 m /zero glyphshow +138.242188 0.000000 m /zero glyphshow +144.604492 0.000000 m /zero glyphshow +150.966797 0.000000 m /space glyphshow +154.145508 0.000000 m /s glyphshow +159.355469 0.000000 m /y glyphshow +165.273438 0.000000 m /s glyphshow +170.483398 0.000000 m /t glyphshow +174.404297 0.000000 m /e glyphshow +180.556641 0.000000 m /m glyphshow +190.297852 0.000000 m /s glyphshow +grestore +1.500 setlinewidth +1 setlinejoin +1.000 0.498 0.055 setrgbcolor +gsave +185.75125 76.937875 m +185.75125 86.937875 l +stroke +grestore +1.000 setlinewidth +0 setlinejoin +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +0 3 m +-3 -3 l +3 -3 l +cl + +gsave +1.000 0.498 0.055 setrgbcolor +fill +grestore +stroke +grestore +} bind def +185.751 81.9379 o +grestore +0.000 setgray +gsave +203.751250 78.437875 translate +0.000000 rotate +0.000000 0.000000 m /S glyphshow +6.347656 0.000000 m /p glyphshow +12.695312 0.000000 m /e glyphshow +18.847656 0.000000 m /e glyphshow +25.000000 0.000000 m /d glyphshow +31.347656 0.000000 m /space glyphshow +34.526367 0.000000 m /u glyphshow +40.864258 0.000000 m /p glyphshow +47.211914 0.000000 m /space glyphshow +50.390625 0.000000 m /ampersand glyphshow +58.188477 0.000000 m /space glyphshow +61.367188 0.000000 m /e glyphshow +67.519531 0.000000 m /f glyphshow +71.040039 0.000000 m /f glyphshow +74.560547 0.000000 m /i glyphshow +77.338867 0.000000 m /c glyphshow +82.836914 0.000000 m /i glyphshow +85.615234 0.000000 m /e glyphshow +91.767578 0.000000 m /n glyphshow +98.105469 0.000000 m /c glyphshow +103.603516 0.000000 m /y glyphshow +109.521484 0.000000 m /space glyphshow +112.700195 0.000000 m /o glyphshow +118.818359 0.000000 m /f glyphshow +122.338867 0.000000 m /space glyphshow +125.517578 0.000000 m /two glyphshow +131.879883 0.000000 m /zero glyphshow +138.242188 0.000000 m /zero glyphshow +144.604492 0.000000 m /zero glyphshow +150.966797 0.000000 m /space glyphshow +154.145508 0.000000 m /s glyphshow +159.355469 0.000000 m /y glyphshow +165.273438 0.000000 m /s glyphshow +170.483398 0.000000 m /t glyphshow +174.404297 0.000000 m /e glyphshow +180.556641 0.000000 m /m glyphshow +190.297852 0.000000 m /s glyphshow +grestore +1.500 setlinewidth +1 setlinejoin +0.173 0.627 0.173 setrgbcolor +gsave +185.75125 62.266 m +185.75125 72.266 l +stroke +grestore +1.000 setlinewidth +0 setlinejoin +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +0 3 m +-3 -3 l +3 -3 l +cl + +gsave +0.173 0.627 0.173 setrgbcolor +fill +grestore +stroke +grestore +} bind def +185.751 67.266 o +grestore +0.000 setgray +gsave +203.751250 63.766000 translate +0.000000 rotate +0.000000 0.000000 m /S glyphshow +6.347656 0.000000 m /p glyphshow +12.695312 0.000000 m /e glyphshow +18.847656 0.000000 m /e glyphshow +25.000000 0.000000 m /d glyphshow +31.347656 0.000000 m /space glyphshow +34.526367 0.000000 m /u glyphshow +40.864258 0.000000 m /p glyphshow +47.211914 0.000000 m /space glyphshow +50.390625 0.000000 m /ampersand glyphshow +58.188477 0.000000 m /space glyphshow +61.367188 0.000000 m /e glyphshow +67.519531 0.000000 m /f glyphshow +71.040039 0.000000 m /f glyphshow +74.560547 0.000000 m /i glyphshow +77.338867 0.000000 m /c glyphshow +82.836914 0.000000 m /i glyphshow +85.615234 0.000000 m /e glyphshow +91.767578 0.000000 m /n glyphshow +98.105469 0.000000 m /c glyphshow +103.603516 0.000000 m /y glyphshow +109.521484 0.000000 m /space glyphshow +112.700195 0.000000 m /o glyphshow +118.818359 0.000000 m /f glyphshow +122.338867 0.000000 m /space glyphshow +125.517578 0.000000 m /five glyphshow +131.879883 0.000000 m /zero glyphshow +138.242188 0.000000 m /zero glyphshow +144.604492 0.000000 m /zero glyphshow +150.966797 0.000000 m /space glyphshow +154.145508 0.000000 m /s glyphshow +159.355469 0.000000 m /y glyphshow +165.273438 0.000000 m /s glyphshow +170.483398 0.000000 m /t glyphshow +174.404297 0.000000 m /e glyphshow +180.556641 0.000000 m /m glyphshow +190.297852 0.000000 m /s glyphshow +grestore +1.500 setlinewidth +1 setlinejoin +0.839 0.153 0.157 setrgbcolor +gsave +185.75125 47.594125 m +185.75125 57.594125 l +stroke +grestore +1.000 setlinewidth +0 setlinejoin +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +0 3 m +-3 -3 l +3 -3 l +cl + +gsave +0.839 0.153 0.157 setrgbcolor +fill +grestore +stroke +grestore +} bind def +185.751 52.5941 o +grestore +0.000 setgray +gsave +203.751250 49.094125 translate +0.000000 rotate +0.000000 0.000000 m /S glyphshow +6.347656 0.000000 m /p glyphshow +12.695312 0.000000 m /e glyphshow +18.847656 0.000000 m /e glyphshow +25.000000 0.000000 m /d glyphshow +31.347656 0.000000 m /space glyphshow +34.526367 0.000000 m /u glyphshow +40.864258 0.000000 m /p glyphshow +47.211914 0.000000 m /space glyphshow +50.390625 0.000000 m /ampersand glyphshow +58.188477 0.000000 m /space glyphshow +61.367188 0.000000 m /e glyphshow +67.519531 0.000000 m /f glyphshow +71.040039 0.000000 m /f glyphshow +74.560547 0.000000 m /i glyphshow +77.338867 0.000000 m /c glyphshow +82.836914 0.000000 m /i glyphshow +85.615234 0.000000 m /e glyphshow +91.767578 0.000000 m /n glyphshow +98.105469 0.000000 m /c glyphshow +103.603516 0.000000 m /y glyphshow +109.521484 0.000000 m /space glyphshow +112.700195 0.000000 m /o glyphshow +118.818359 0.000000 m /f glyphshow +122.338867 0.000000 m /space glyphshow +125.517578 0.000000 m /one glyphshow +131.879883 0.000000 m /zero glyphshow +138.242188 0.000000 m /zero glyphshow +144.604492 0.000000 m /zero glyphshow +150.966797 0.000000 m /zero glyphshow +157.329102 0.000000 m /space glyphshow +160.507812 0.000000 m /s glyphshow +165.717773 0.000000 m /y glyphshow +171.635742 0.000000 m /s glyphshow +176.845703 0.000000 m /t glyphshow +180.766602 0.000000 m /e glyphshow +186.918945 0.000000 m /m glyphshow +196.660156 0.000000 m /s glyphshow +grestore +0.800 setlinewidth +1 setlinejoin +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +414.72 38.016 o +grestore +gsave +421.720000 34.219125 translate +0.000000 rotate +0.000000 0.000000 m /zero glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /zero glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +414.72 91.2384 o +grestore +gsave +421.720000 87.441525 translate +0.000000 rotate +0.000000 0.000000 m /zero glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /two glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +414.72 144.461 o +grestore +gsave +421.720000 140.663925 translate +0.000000 rotate +0.000000 0.000000 m /zero glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /four glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +414.72 197.683 o +grestore +gsave +421.720000 193.886325 translate +0.000000 rotate +0.000000 0.000000 m /zero glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /six glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +414.72 250.906 o +grestore +gsave +421.720000 247.108725 translate +0.000000 rotate +0.000000 0.000000 m /zero glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /eight glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +414.72 304.128 o +grestore +gsave +421.720000 300.331125 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /zero glyphshow +grestore +1.500 setlinewidth +2 setlinecap +0.122 0.467 0.706 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +97.28 290.944934 m +136.96 270.409085 l +stroke +grestore +1.000 0.498 0.055 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +98.272 288.714717 m +137.952 273.979049 l +217.312 264.772307 l +376.032 169.626677 l +stroke +grestore +0.173 0.627 0.173 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +99.264 292.212135 m +138.944 276.923119 l +218.304 267.066521 l +377.024 171.586171 l +stroke +grestore +0.839 0.153 0.157 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +100.256 293.077199 m +139.936 276.190438 l +219.296 270.864871 l +378.016 171.598688 l +stroke +grestore +0.800 setlinewidth +0 setlinejoin +[] 0 setdash +0.000 setgray +gsave +57.6 38.016 m +57.6 304.128 l +stroke +grestore +gsave +414.72 38.016 m +414.72 304.128 l +stroke +grestore +gsave +57.6 38.016 m +414.72 38.016 l +stroke +grestore +gsave +57.6 304.128 m +414.72 304.128 l +stroke +grestore + +end +showpage diff --git a/tests/population/scaling_plots/speedup_scaling_Astro1.pdf b/tests/population/scaling_plots/speedup_scaling_Astro1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..eac5b25473077a3c03938c7fdad08fde50edc8f6 Binary files /dev/null and b/tests/population/scaling_plots/speedup_scaling_Astro1.pdf differ diff --git a/tests/population/scaling_plots/speedup_scaling_Astro1.png b/tests/population/scaling_plots/speedup_scaling_Astro1.png new file mode 100644 index 0000000000000000000000000000000000000000..e2cf4fc604300568299fe851838b3f12a73d71f0 Binary files /dev/null and b/tests/population/scaling_plots/speedup_scaling_Astro1.png differ