commit 55ec09e9c072a63735fd617953cb36826d4bdace parent d3c8791d97252177bad6bfdf9fe43591094cf9fd Author: d.levin256@gmail.com <d.levin256@gmail.com> Date: Wed, 28 Nov 2018 16:08:53 +0000 Benchmark results Diffstat:
M | README.md | | | 37 | ++++++++++++++++++++++++++++--------- |
A | img/biquad.svg | | | 1290 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | img/composite_double_18_119.png | | | 0 | |
A | img/composite_float_18_119.png | | | 0 | |
A | img/extra_double_120_30720000.png | | | 0 | |
A | img/extra_float_120_30720000.png | | | 0 | |
A | img/powers2_double_16_16777216.png | | | 0 | |
A | img/powers2_float_16_16777216.png | | | 0 | |
A | img/primes_double_17_127.png | | | 0 | |
A | img/primes_float_17_127.png | | | 0 |
10 files changed, 1318 insertions(+), 9 deletions(-)
diff --git a/README.md b/README.md @@ -13,11 +13,13 @@ KFR is a header-only library (except DFT) and has no external dependencies. ## What's new in KFR 3.0 +* Optimized non-power of two DFT implementation * Full AVX-512 support * EBU R128 -* Non-power of two DFT -* TruePeak (coming soon) +* Ability to include KFR as a subdirectory in cmake project * Number of automatic tests has been increased +* C API for DFT +* Partial GCC 8.x support * GPL version changed from 3 to 2+ ## All features @@ -52,25 +54,42 @@ KFR is a header-only library (except DFT) and has no external dependencies. * EBU R128 # Benchmark results -## FFT +## DFT + +### KFR 3.0.1 + +Powers of 2, from 16 to 16777216 + + + +Prime numbers from 17 to 127 + + + +Small numbers from 18 to 119 + + + +Random sizes from 120 to 30720000 + + + +### KFR 0.9.1 + -FFT (double precision, sizes from 1024 to 16777216) See [fft benchmark](https://github.com/kfrlib/fft-benchmark) for details about benchmarking process. - ## Biquad -[Biquad performance](https://github.com/kfrlib/biquad-benchmark/blob/master/bq.svg) + # Usage - - ## Common prerequisites * CMake 3.0 or newer for building tests and examples -* Python 2.7 or 3.x for building examples +* Python 2.7 or 3.x for running examples * (Optional) Ninja (https://ninja-build.org/) For running examples and plotting frequency responses of filters the following python packages are required: diff --git a/img/biquad.svg b/img/biquad.svg @@ -0,0 +1,1290 @@ +<?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="396pt" version="1.1" viewBox="0 0 792 396" width="792pt" 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;stroke-miterlimit:100000;} + </style> + </defs> + <g id="figure_1"> + <g id="patch_1"> + <path d="M 0 396 +L 792 396 +L 792 0 +L 0 0 +z +" style="fill:#ffffff;"/> + </g> + <g id="axes_1"> + <g id="patch_2"> + <path d="M 72.0225 346.9275 +L 773.19 346.9275 +L 773.19 18.81 +L 72.0225 18.81 +z +" style="fill:#ffffff;"/> + </g> + <g id="line2d_1"> + <path clip-path="url(#peac63e4380)" d="M 72.0225 320.253985 +L 188.88375 295.488801 +L 305.745 247.045721 +L 422.60625 209.011277 +L 539.4675 110.576965 +L 656.32875 52.077365 +L 773.19 132.530838 +" style="fill:none;stroke:#f6511d;stroke-linecap:square;stroke-width:1.6;"/> + <defs> + <path d="M 0 5 +C 1.326016 5 2.597899 4.473168 3.535534 3.535534 +C 4.473168 2.597899 5 1.326016 5 0 +C 5 -1.326016 4.473168 -2.597899 3.535534 -3.535534 +C 2.597899 -4.473168 1.326016 -5 0 -5 +C -1.326016 -5 -2.597899 -4.473168 -3.535534 -3.535534 +C -4.473168 -2.597899 -5 -1.326016 -5 0 +C -5 1.326016 -4.473168 2.597899 -3.535534 3.535534 +C -2.597899 4.473168 -1.326016 5 0 5 +z +" id="m655dfe191c" style="stroke:#ffffff;stroke-width:2.0;"/> + </defs> + <g clip-path="url(#peac63e4380)"> + <use style="fill:#f6511d;stroke:#ffffff;stroke-width:2.0;" x="72.0225" xlink:href="#m655dfe191c" y="320.253984694"/> + <use style="fill:#f6511d;stroke:#ffffff;stroke-width:2.0;" x="188.88375" xlink:href="#m655dfe191c" y="295.488800769"/> + <use style="fill:#f6511d;stroke:#ffffff;stroke-width:2.0;" x="305.745" xlink:href="#m655dfe191c" y="247.045720564"/> + <use style="fill:#f6511d;stroke:#ffffff;stroke-width:2.0;" x="422.60625" xlink:href="#m655dfe191c" y="209.011277443"/> + <use style="fill:#f6511d;stroke:#ffffff;stroke-width:2.0;" x="539.4675" xlink:href="#m655dfe191c" y="110.576964921"/> + <use style="fill:#f6511d;stroke:#ffffff;stroke-width:2.0;" x="656.32875" xlink:href="#m655dfe191c" y="52.0773645857"/> + <use style="fill:#f6511d;stroke:#ffffff;stroke-width:2.0;" x="773.19" xlink:href="#m655dfe191c" y="132.530838107"/> + </g> + </g> + <g id="line2d_2"> + <path clip-path="url(#peac63e4380)" d="M 72.0225 286.170545 +L 188.88375 286.164451 +L 305.745 286.088141 +L 422.60625 286.069766 +L 539.4675 286.048392 +L 656.32875 286.043798 +L 773.19 289.366597 +" style="fill:none;stroke:#00a6ed;stroke-linecap:square;stroke-width:1.6;"/> + <defs> + <path d="M 0 5 +C 1.326016 5 2.597899 4.473168 3.535534 3.535534 +C 4.473168 2.597899 5 1.326016 5 0 +C 5 -1.326016 4.473168 -2.597899 3.535534 -3.535534 +C 2.597899 -4.473168 1.326016 -5 0 -5 +C -1.326016 -5 -2.597899 -4.473168 -3.535534 -3.535534 +C -4.473168 -2.597899 -5 -1.326016 -5 0 +C -5 1.326016 -4.473168 2.597899 -3.535534 3.535534 +C -2.597899 4.473168 -1.326016 5 0 5 +z +" id="mfc5588133a" style="stroke:#ffffff;stroke-width:2.0;"/> + </defs> + <g clip-path="url(#peac63e4380)"> + <use style="fill:#00a6ed;stroke:#ffffff;stroke-width:2.0;" x="72.0225" xlink:href="#mfc5588133a" y="286.170545012"/> + <use style="fill:#00a6ed;stroke:#ffffff;stroke-width:2.0;" x="188.88375" xlink:href="#mfc5588133a" y="286.164451401"/> + <use style="fill:#00a6ed;stroke:#ffffff;stroke-width:2.0;" x="305.745" xlink:href="#mfc5588133a" y="286.088140646"/> + <use style="fill:#00a6ed;stroke:#ffffff;stroke-width:2.0;" x="422.60625" xlink:href="#mfc5588133a" y="286.069766066"/> + <use style="fill:#00a6ed;stroke:#ffffff;stroke-width:2.0;" x="539.4675" xlink:href="#mfc5588133a" y="286.048391554"/> + <use style="fill:#00a6ed;stroke:#ffffff;stroke-width:2.0;" x="656.32875" xlink:href="#mfc5588133a" y="286.043797909"/> + <use style="fill:#00a6ed;stroke:#ffffff;stroke-width:2.0;" x="773.19" xlink:href="#mfc5588133a" y="289.366596958"/> + </g> + </g> + <g id="patch_3"> + <path d="M 72.0225 18.81 +L 773.19 18.81 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;"/> + </g> + <g id="patch_4"> + <path d="M 773.19 346.9275 +L 773.19 18.81 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;"/> + </g> + <g id="patch_5"> + <path d="M 72.0225 346.9275 +L 773.19 346.9275 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;"/> + </g> + <g id="patch_6"> + <path d="M 72.0225 346.9275 +L 72.0225 18.81 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;"/> + </g> + <g id="matplotlib.axis_1"> + <g id="xtick_1"> + <g id="line2d_3"> + <path clip-path="url(#peac63e4380)" d="M 72.0225 346.9275 +L 72.0225 18.81 +" style="fill:none;stroke:#777777;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-width:0.5;"/> + </g> + <g id="line2d_4"> + <defs> + <path d="M 0 0 +L 0 -4 +" id="m36d2d7e858" style="stroke:#000000;stroke-width:0.5;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="72.0225" xlink:href="#m36d2d7e858" y="346.9275"/> + </g> + </g> + <g id="line2d_5"> + <defs> + <path d="M 0 0 +L 0 4 +" id="mf3ac5d8b6d" style="stroke:#000000;stroke-width:0.5;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="72.0225" xlink:href="#mf3ac5d8b6d" y="18.81"/> + </g> + </g> + <g id="text_1"> + <!-- 1 --> + <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="BitstreamVeraSans-Roman-31"/> + </defs> + <g transform="translate(75.33375 358.5625)rotate(-90.0)scale(0.12 -0.12)"> + <use xlink:href="#BitstreamVeraSans-Roman-31"/> + </g> + </g> + </g> + <g id="xtick_2"> + <g id="line2d_6"> + <path clip-path="url(#peac63e4380)" d="M 188.88375 346.9275 +L 188.88375 18.81 +" style="fill:none;stroke:#777777;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-width:0.5;"/> + </g> + <g id="line2d_7"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="188.88375" xlink:href="#m36d2d7e858" y="346.9275"/> + </g> + </g> + <g id="line2d_8"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="188.88375" xlink:href="#mf3ac5d8b6d" y="18.81"/> + </g> + </g> + <g id="text_2"> + <!-- 2 --> + <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 +" id="BitstreamVeraSans-Roman-32"/> + </defs> + <g transform="translate(192.195 358.5625)rotate(-90.0)scale(0.12 -0.12)"> + <use xlink:href="#BitstreamVeraSans-Roman-32"/> + </g> + </g> + </g> + <g id="xtick_3"> + <g id="line2d_9"> + <path clip-path="url(#peac63e4380)" d="M 305.745 346.9275 +L 305.745 18.81 +" style="fill:none;stroke:#777777;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-width:0.5;"/> + </g> + <g id="line2d_10"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="305.745" xlink:href="#m36d2d7e858" y="346.9275"/> + </g> + </g> + <g id="line2d_11"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="305.745" xlink:href="#mf3ac5d8b6d" y="18.81"/> + </g> + </g> + <g id="text_3"> + <!-- 4 --> + <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="BitstreamVeraSans-Roman-34"/> + </defs> + <g transform="translate(309.05625 358.5625)rotate(-90.0)scale(0.12 -0.12)"> + <use xlink:href="#BitstreamVeraSans-Roman-34"/> + </g> + </g> + </g> + <g id="xtick_4"> + <g id="line2d_12"> + <path clip-path="url(#peac63e4380)" d="M 422.60625 346.9275 +L 422.60625 18.81 +" style="fill:none;stroke:#777777;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-width:0.5;"/> + </g> + <g id="line2d_13"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="422.60625" xlink:href="#m36d2d7e858" y="346.9275"/> + </g> + </g> + <g id="line2d_14"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="422.60625" xlink:href="#mf3ac5d8b6d" y="18.81"/> + </g> + </g> + <g id="text_4"> + <!-- 8 --> + <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 +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 +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 +" id="BitstreamVeraSans-Roman-38"/> + </defs> + <g transform="translate(425.9175 358.5625)rotate(-90.0)scale(0.12 -0.12)"> + <use xlink:href="#BitstreamVeraSans-Roman-38"/> + </g> + </g> + </g> + <g id="xtick_5"> + <g id="line2d_15"> + <path clip-path="url(#peac63e4380)" d="M 539.4675 346.9275 +L 539.4675 18.81 +" style="fill:none;stroke:#777777;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-width:0.5;"/> + </g> + <g id="line2d_16"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="539.4675" xlink:href="#m36d2d7e858" y="346.9275"/> + </g> + </g> + <g id="line2d_17"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="539.4675" xlink:href="#mf3ac5d8b6d" y="18.81"/> + </g> + </g> + <g id="text_5"> + <!-- 16 --> + <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 +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 +" id="BitstreamVeraSans-Roman-36"/> + </defs> + <g transform="translate(542.77875 366.1975)rotate(-90.0)scale(0.12 -0.12)"> + <use xlink:href="#BitstreamVeraSans-Roman-31"/> + <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-36"/> + </g> + </g> + </g> + <g id="xtick_6"> + <g id="line2d_18"> + <path clip-path="url(#peac63e4380)" d="M 656.32875 346.9275 +L 656.32875 18.81 +" style="fill:none;stroke:#777777;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-width:0.5;"/> + </g> + <g id="line2d_19"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="656.32875" xlink:href="#m36d2d7e858" y="346.9275"/> + </g> + </g> + <g id="line2d_20"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="656.32875" xlink:href="#mf3ac5d8b6d" y="18.81"/> + </g> + </g> + <g id="text_6"> + <!-- 32 --> + <defs> + <path d="M 40.578125 39.3125 +Q 47.65625 37.796875 51.625 33 +Q 55.609375 28.21875 55.609375 21.1875 +Q 55.609375 10.40625 48.1875 4.484375 +Q 40.765625 -1.421875 27.09375 -1.421875 +Q 22.515625 -1.421875 17.65625 -0.515625 +Q 12.796875 0.390625 7.625 2.203125 +L 7.625 11.71875 +Q 11.71875 9.328125 16.59375 8.109375 +Q 21.484375 6.890625 26.8125 6.890625 +Q 36.078125 6.890625 40.9375 10.546875 +Q 45.796875 14.203125 45.796875 21.1875 +Q 45.796875 27.640625 41.28125 31.265625 +Q 36.765625 34.90625 28.71875 34.90625 +L 20.21875 34.90625 +L 20.21875 43.015625 +L 29.109375 43.015625 +Q 36.375 43.015625 40.234375 45.921875 +Q 44.09375 48.828125 44.09375 54.296875 +Q 44.09375 59.90625 40.109375 62.90625 +Q 36.140625 65.921875 28.71875 65.921875 +Q 24.65625 65.921875 20.015625 65.03125 +Q 15.375 64.15625 9.8125 62.3125 +L 9.8125 71.09375 +Q 15.4375 72.65625 20.34375 73.4375 +Q 25.25 74.21875 29.59375 74.21875 +Q 40.828125 74.21875 47.359375 69.109375 +Q 53.90625 64.015625 53.90625 55.328125 +Q 53.90625 49.265625 50.4375 45.09375 +Q 46.96875 40.921875 40.578125 39.3125 +" id="BitstreamVeraSans-Roman-33"/> + </defs> + <g transform="translate(659.64 366.1975)rotate(-90.0)scale(0.12 -0.12)"> + <use xlink:href="#BitstreamVeraSans-Roman-33"/> + <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-32"/> + </g> + </g> + </g> + <g id="xtick_7"> + <g id="line2d_21"> + <path clip-path="url(#peac63e4380)" d="M 773.19 346.9275 +L 773.19 18.81 +" style="fill:none;stroke:#777777;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-width:0.5;"/> + </g> + <g id="line2d_22"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="773.19" xlink:href="#m36d2d7e858" y="346.9275"/> + </g> + </g> + <g id="line2d_23"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="773.19" xlink:href="#mf3ac5d8b6d" y="18.81"/> + </g> + </g> + <g id="text_7"> + <!-- 64 --> + <g transform="translate(776.50125 366.1975)rotate(-90.0)scale(0.12 -0.12)"> + <use xlink:href="#BitstreamVeraSans-Roman-36"/> + <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-34"/> + </g> + </g> + </g> + <g id="text_8"> + <!-- size --> + <defs> + <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 +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="BitstreamVeraSans-Roman-65"/> + <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="BitstreamVeraSans-Roman-69"/> + <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 +" id="BitstreamVeraSans-Roman-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="BitstreamVeraSans-Roman-7a"/> + </defs> + <g transform="translate(410.9728125 380.315625)scale(0.12 -0.12)"> + <use xlink:href="#BitstreamVeraSans-Roman-73"/> + <use x="52.099609375" xlink:href="#BitstreamVeraSans-Roman-69"/> + <use x="79.8828125" xlink:href="#BitstreamVeraSans-Roman-7a"/> + <use x="132.373046875" xlink:href="#BitstreamVeraSans-Roman-65"/> + </g> + </g> + </g> + <g id="matplotlib.axis_2"> + <g id="ytick_1"> + <g id="line2d_24"> + <path clip-path="url(#peac63e4380)" d="M 72.0225 346.9275 +L 773.19 346.9275 +" style="fill:none;stroke:#777777;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-width:0.5;"/> + </g> + <g id="line2d_25"> + <defs> + <path d="M 0 0 +L 4 0 +" id="mb5de5cdfde" style="stroke:#000000;stroke-width:0.5;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="72.0225" xlink:href="#mb5de5cdfde" y="346.9275"/> + </g> + </g> + <g id="line2d_26"> + <defs> + <path d="M 0 0 +L -4 0 +" id="me9adb7e0e5" style="stroke:#000000;stroke-width:0.5;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="773.19" xlink:href="#me9adb7e0e5" y="346.9275"/> + </g> + </g> + <g id="text_9"> + <!-- 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 +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 +" id="BitstreamVeraSans-Roman-30"/> + </defs> + <g transform="translate(60.3875 350.23875)scale(0.12 -0.12)"> + <use xlink:href="#BitstreamVeraSans-Roman-30"/> + </g> + </g> + </g> + <g id="ytick_2"> + <g id="line2d_27"> + <path clip-path="url(#peac63e4380)" d="M 72.0225 300.053571 +L 773.19 300.053571 +" style="fill:none;stroke:#777777;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-width:0.5;"/> + </g> + <g id="line2d_28"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="72.0225" xlink:href="#mb5de5cdfde" y="300.053571429"/> + </g> + </g> + <g id="line2d_29"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="773.19" xlink:href="#me9adb7e0e5" y="300.053571429"/> + </g> + </g> + <g id="text_10"> + <!-- 5000 --> + <defs> + <path d="M 10.796875 72.90625 +L 49.515625 72.90625 +L 49.515625 64.59375 +L 19.828125 64.59375 +L 19.828125 46.734375 +Q 21.96875 47.46875 24.109375 47.828125 +Q 26.265625 48.1875 28.421875 48.1875 +Q 40.625 48.1875 47.75 41.5 +Q 54.890625 34.8125 54.890625 23.390625 +Q 54.890625 11.625 47.5625 5.09375 +Q 40.234375 -1.421875 26.90625 -1.421875 +Q 22.3125 -1.421875 17.546875 -0.640625 +Q 12.796875 0.140625 7.71875 1.703125 +L 7.71875 11.625 +Q 12.109375 9.234375 16.796875 8.0625 +Q 21.484375 6.890625 26.703125 6.890625 +Q 35.15625 6.890625 40.078125 11.328125 +Q 45.015625 15.765625 45.015625 23.390625 +Q 45.015625 31 40.078125 35.4375 +Q 35.15625 39.890625 26.703125 39.890625 +Q 22.75 39.890625 18.8125 39.015625 +Q 14.890625 38.140625 10.796875 36.28125 +z +" id="BitstreamVeraSans-Roman-35"/> + </defs> + <g transform="translate(37.4825 303.364821429)scale(0.12 -0.12)"> + <use xlink:href="#BitstreamVeraSans-Roman-35"/> + <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="190.869140625" xlink:href="#BitstreamVeraSans-Roman-30"/> + </g> + </g> + </g> + <g id="ytick_3"> + <g id="line2d_30"> + <path clip-path="url(#peac63e4380)" d="M 72.0225 253.179643 +L 773.19 253.179643 +" style="fill:none;stroke:#777777;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-width:0.5;"/> + </g> + <g id="line2d_31"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="72.0225" xlink:href="#mb5de5cdfde" y="253.179642857"/> + </g> + </g> + <g id="line2d_32"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="773.19" xlink:href="#me9adb7e0e5" y="253.179642857"/> + </g> + </g> + <g id="text_11"> + <!-- 10000 --> + <g transform="translate(29.8475 256.490892857)scale(0.12 -0.12)"> + <use xlink:href="#BitstreamVeraSans-Roman-31"/> + <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="190.869140625" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="254.4921875" xlink:href="#BitstreamVeraSans-Roman-30"/> + </g> + </g> + </g> + <g id="ytick_4"> + <g id="line2d_33"> + <path clip-path="url(#peac63e4380)" d="M 72.0225 206.305714 +L 773.19 206.305714 +" style="fill:none;stroke:#777777;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-width:0.5;"/> + </g> + <g id="line2d_34"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="72.0225" xlink:href="#mb5de5cdfde" y="206.305714286"/> + </g> + </g> + <g id="line2d_35"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="773.19" xlink:href="#me9adb7e0e5" y="206.305714286"/> + </g> + </g> + <g id="text_12"> + <!-- 15000 --> + <g transform="translate(29.8475 209.616964286)scale(0.12 -0.12)"> + <use xlink:href="#BitstreamVeraSans-Roman-31"/> + <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-35"/> + <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="190.869140625" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="254.4921875" xlink:href="#BitstreamVeraSans-Roman-30"/> + </g> + </g> + </g> + <g id="ytick_5"> + <g id="line2d_36"> + <path clip-path="url(#peac63e4380)" d="M 72.0225 159.431786 +L 773.19 159.431786 +" style="fill:none;stroke:#777777;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-width:0.5;"/> + </g> + <g id="line2d_37"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="72.0225" xlink:href="#mb5de5cdfde" y="159.431785714"/> + </g> + </g> + <g id="line2d_38"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="773.19" xlink:href="#me9adb7e0e5" y="159.431785714"/> + </g> + </g> + <g id="text_13"> + <!-- 20000 --> + <g transform="translate(29.8475 162.743035714)scale(0.12 -0.12)"> + <use xlink:href="#BitstreamVeraSans-Roman-32"/> + <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="190.869140625" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="254.4921875" xlink:href="#BitstreamVeraSans-Roman-30"/> + </g> + </g> + </g> + <g id="ytick_6"> + <g id="line2d_39"> + <path clip-path="url(#peac63e4380)" d="M 72.0225 112.557857 +L 773.19 112.557857 +" style="fill:none;stroke:#777777;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-width:0.5;"/> + </g> + <g id="line2d_40"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="72.0225" xlink:href="#mb5de5cdfde" y="112.557857143"/> + </g> + </g> + <g id="line2d_41"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="773.19" xlink:href="#me9adb7e0e5" y="112.557857143"/> + </g> + </g> + <g id="text_14"> + <!-- 25000 --> + <g transform="translate(29.8475 115.869107143)scale(0.12 -0.12)"> + <use xlink:href="#BitstreamVeraSans-Roman-32"/> + <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-35"/> + <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="190.869140625" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="254.4921875" xlink:href="#BitstreamVeraSans-Roman-30"/> + </g> + </g> + </g> + <g id="ytick_7"> + <g id="line2d_42"> + <path clip-path="url(#peac63e4380)" d="M 72.0225 65.683929 +L 773.19 65.683929 +" style="fill:none;stroke:#777777;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-width:0.5;"/> + </g> + <g id="line2d_43"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="72.0225" xlink:href="#mb5de5cdfde" y="65.6839285714"/> + </g> + </g> + <g id="line2d_44"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="773.19" xlink:href="#me9adb7e0e5" y="65.6839285714"/> + </g> + </g> + <g id="text_15"> + <!-- 30000 --> + <g transform="translate(29.8475 68.9951785714)scale(0.12 -0.12)"> + <use xlink:href="#BitstreamVeraSans-Roman-33"/> + <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="190.869140625" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="254.4921875" xlink:href="#BitstreamVeraSans-Roman-30"/> + </g> + </g> + </g> + <g id="ytick_8"> + <g id="line2d_45"> + <path clip-path="url(#peac63e4380)" d="M 72.0225 18.81 +L 773.19 18.81 +" style="fill:none;stroke:#777777;stroke-dasharray:1.000000,3.000000;stroke-dashoffset:0.0;stroke-width:0.5;"/> + </g> + <g id="line2d_46"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="72.0225" xlink:href="#mb5de5cdfde" y="18.81"/> + </g> + </g> + <g id="line2d_47"> + <g> + <use style="stroke:#000000;stroke-width:0.5;" x="773.19" xlink:href="#me9adb7e0e5" y="18.81"/> + </g> + </g> + <g id="text_16"> + <!-- 35000 --> + <g transform="translate(29.8475 22.12125)scale(0.12 -0.12)"> + <use xlink:href="#BitstreamVeraSans-Roman-33"/> + <use x="63.623046875" xlink:href="#BitstreamVeraSans-Roman-35"/> + <use x="127.24609375" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="190.869140625" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="254.4921875" xlink:href="#BitstreamVeraSans-Roman-30"/> + </g> + </g> + </g> + <g id="text_17"> + <!-- mflops --> + <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 +" id="BitstreamVeraSans-Roman-6d"/> + <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="BitstreamVeraSans-Roman-66"/> + <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 +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 +" id="BitstreamVeraSans-Roman-70"/> + <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 +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 +" id="BitstreamVeraSans-Roman-6f"/> + <path d="M 9.421875 75.984375 +L 18.40625 75.984375 +L 18.40625 0 +L 9.421875 0 +z +" id="BitstreamVeraSans-Roman-6c"/> + </defs> + <g transform="translate(22.351875 203.098125)rotate(-90.0)scale(0.12 -0.12)"> + <use xlink:href="#BitstreamVeraSans-Roman-6d"/> + <use x="97.412109375" xlink:href="#BitstreamVeraSans-Roman-66"/> + <use x="132.6171875" xlink:href="#BitstreamVeraSans-Roman-6c"/> + <use x="160.400390625" xlink:href="#BitstreamVeraSans-Roman-6f"/> + <use x="221.58203125" xlink:href="#BitstreamVeraSans-Roman-70"/> + <use x="285.05859375" xlink:href="#BitstreamVeraSans-Roman-73"/> + </g> + </g> + </g> + <g id="legend_1"> + <g id="patch_7"> + <path d="M 290.559375 339.7275 +L 554.653125 339.7275 +L 554.653125 293.1345 +L 290.559375 293.1345 +z +" style="fill:#ffffff;opacity:0.6;stroke:#000000;stroke-linejoin:miter;"/> + </g> + <g id="line2d_48"> + <path d="M 300.639375 304.79625 +L 320.799375 304.79625 +" style="fill:none;stroke:#f6511d;stroke-linecap:square;stroke-width:1.6;"/> + </g> + <g id="line2d_49"> + <g> + <use style="fill:#f6511d;stroke:#ffffff;stroke-width:2.0;" x="300.639375" xlink:href="#m655dfe191c" y="304.79625"/> + <use style="fill:#f6511d;stroke:#ffffff;stroke-width:2.0;" x="320.799375" xlink:href="#m655dfe191c" y="304.79625"/> + </g> + </g> + <g id="text_18"> + <!-- KFR 0.9.0 x86-64 avx --> + <defs> + <path id="BitstreamVeraSans-Roman-20"/> + <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="BitstreamVeraSans-Roman-4b"/> + <path d="M 10.984375 1.515625 +L 10.984375 10.5 +Q 14.703125 8.734375 18.5 7.8125 +Q 22.3125 6.890625 25.984375 6.890625 +Q 35.75 6.890625 40.890625 13.453125 +Q 46.046875 20.015625 46.78125 33.40625 +Q 43.953125 29.203125 39.59375 26.953125 +Q 35.25 24.703125 29.984375 24.703125 +Q 19.046875 24.703125 12.671875 31.3125 +Q 6.296875 37.9375 6.296875 49.421875 +Q 6.296875 60.640625 12.9375 67.421875 +Q 19.578125 74.21875 30.609375 74.21875 +Q 43.265625 74.21875 49.921875 64.515625 +Q 56.59375 54.828125 56.59375 36.375 +Q 56.59375 19.140625 48.40625 8.859375 +Q 40.234375 -1.421875 26.421875 -1.421875 +Q 22.703125 -1.421875 18.890625 -0.6875 +Q 15.09375 0.046875 10.984375 1.515625 +M 30.609375 32.421875 +Q 37.25 32.421875 41.125 36.953125 +Q 45.015625 41.5 45.015625 49.421875 +Q 45.015625 57.28125 41.125 61.84375 +Q 37.25 66.40625 30.609375 66.40625 +Q 23.96875 66.40625 20.09375 61.84375 +Q 16.21875 57.28125 16.21875 49.421875 +Q 16.21875 41.5 20.09375 36.953125 +Q 23.96875 32.421875 30.609375 32.421875 +" id="BitstreamVeraSans-Roman-39"/> + <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="BitstreamVeraSans-Roman-46"/> + <path d="M 44.390625 34.1875 +Q 47.5625 33.109375 50.5625 29.59375 +Q 53.5625 26.078125 56.59375 19.921875 +L 66.609375 0 +L 56 0 +L 46.6875 18.703125 +Q 43.0625 26.03125 39.671875 28.421875 +Q 36.28125 30.8125 30.421875 30.8125 +L 19.671875 30.8125 +L 19.671875 0 +L 9.8125 0 +L 9.8125 72.90625 +L 32.078125 72.90625 +Q 44.578125 72.90625 50.734375 67.671875 +Q 56.890625 62.453125 56.890625 51.90625 +Q 56.890625 45.015625 53.6875 40.46875 +Q 50.484375 35.9375 44.390625 34.1875 +M 19.671875 64.796875 +L 19.671875 38.921875 +L 32.078125 38.921875 +Q 39.203125 38.921875 42.84375 42.21875 +Q 46.484375 45.515625 46.484375 51.90625 +Q 46.484375 58.296875 42.84375 61.546875 +Q 39.203125 64.796875 32.078125 64.796875 +z +" id="BitstreamVeraSans-Roman-52"/> + <path d="M 10.6875 12.40625 +L 21 12.40625 +L 21 0 +L 10.6875 0 +z +" id="BitstreamVeraSans-Roman-2e"/> + <path d="M 4.890625 31.390625 +L 31.203125 31.390625 +L 31.203125 23.390625 +L 4.890625 23.390625 +z +" id="BitstreamVeraSans-Roman-2d"/> + <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="BitstreamVeraSans-Roman-78"/> + <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="BitstreamVeraSans-Roman-76"/> + <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 +" id="BitstreamVeraSans-Roman-61"/> + </defs> + <g transform="translate(336.639375 309.83625)scale(0.144 -0.144)"> + <use xlink:href="#BitstreamVeraSans-Roman-4b"/> + <use x="65.576171875" xlink:href="#BitstreamVeraSans-Roman-46"/> + <use x="123.095703125" xlink:href="#BitstreamVeraSans-Roman-52"/> + <use x="192.578125" xlink:href="#BitstreamVeraSans-Roman-20"/> + <use x="224.365234375" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="287.98828125" xlink:href="#BitstreamVeraSans-Roman-2e"/> + <use x="319.775390625" xlink:href="#BitstreamVeraSans-Roman-39"/> + <use x="383.3984375" xlink:href="#BitstreamVeraSans-Roman-2e"/> + <use x="415.185546875" xlink:href="#BitstreamVeraSans-Roman-30"/> + <use x="478.80859375" xlink:href="#BitstreamVeraSans-Roman-20"/> + <use x="510.595703125" xlink:href="#BitstreamVeraSans-Roman-78"/> + <use x="569.775390625" xlink:href="#BitstreamVeraSans-Roman-38"/> + <use x="633.3984375" xlink:href="#BitstreamVeraSans-Roman-36"/> + <use x="697.021484375" xlink:href="#BitstreamVeraSans-Roman-2d"/> + <use x="733.10546875" xlink:href="#BitstreamVeraSans-Roman-36"/> + <use x="796.728515625" xlink:href="#BitstreamVeraSans-Roman-34"/> + <use x="860.3515625" xlink:href="#BitstreamVeraSans-Roman-20"/> + <use x="892.138671875" xlink:href="#BitstreamVeraSans-Roman-61"/> + <use x="953.41796875" xlink:href="#BitstreamVeraSans-Roman-76"/> + <use x="1012.59765625" xlink:href="#BitstreamVeraSans-Roman-78"/> + </g> + </g> + <g id="line2d_50"> + <path d="M 300.639375 325.93275 +L 320.799375 325.93275 +" style="fill:none;stroke:#00a6ed;stroke-linecap:square;stroke-width:1.6;"/> + </g> + <g id="line2d_51"> + <g> + <use style="fill:#00a6ed;stroke:#ffffff;stroke-width:2.0;" x="300.639375" xlink:href="#mfc5588133a" y="325.93275"/> + <use style="fill:#00a6ed;stroke:#ffffff;stroke-width:2.0;" x="320.799375" xlink:href="#mfc5588133a" y="325.93275"/> + </g> + </g> + <g id="text_19"> + <!-- ippSP AVX (e9)8.2.2 (r46212) --> + <defs> + <path d="M 34.1875 63.1875 +L 20.796875 26.90625 +L 47.609375 26.90625 +z +M 28.609375 72.90625 +L 39.796875 72.90625 +L 67.578125 0 +L 57.328125 0 +L 50.6875 18.703125 +L 17.828125 18.703125 +L 11.1875 0 +L 0.78125 0 +z +" id="BitstreamVeraSans-Roman-41"/> + <path d="M 8.015625 75.875 +L 15.828125 75.875 +Q 23.140625 64.359375 26.78125 53.3125 +Q 30.421875 42.28125 30.421875 31.390625 +Q 30.421875 20.453125 26.78125 9.375 +Q 23.140625 -1.703125 15.828125 -13.1875 +L 8.015625 -13.1875 +Q 14.5 -2 17.703125 9.0625 +Q 20.90625 20.125 20.90625 31.390625 +Q 20.90625 42.671875 17.703125 53.65625 +Q 14.5 64.65625 8.015625 75.875 +" id="BitstreamVeraSans-Roman-29"/> + <path d="M 31 75.875 +Q 24.46875 64.65625 21.28125 53.65625 +Q 18.109375 42.671875 18.109375 31.390625 +Q 18.109375 20.125 21.3125 9.0625 +Q 24.515625 -2 31 -13.1875 +L 23.1875 -13.1875 +Q 15.875 -1.703125 12.234375 9.375 +Q 8.59375 20.453125 8.59375 31.390625 +Q 8.59375 42.28125 12.203125 53.3125 +Q 15.828125 64.359375 23.1875 75.875 +z +" id="BitstreamVeraSans-Roman-28"/> + <path d="M 19.671875 64.796875 +L 19.671875 37.40625 +L 32.078125 37.40625 +Q 38.96875 37.40625 42.71875 40.96875 +Q 46.484375 44.53125 46.484375 51.125 +Q 46.484375 57.671875 42.71875 61.234375 +Q 38.96875 64.796875 32.078125 64.796875 +z +M 9.8125 72.90625 +L 32.078125 72.90625 +Q 44.34375 72.90625 50.609375 67.359375 +Q 56.890625 61.8125 56.890625 51.125 +Q 56.890625 40.328125 50.609375 34.8125 +Q 44.34375 29.296875 32.078125 29.296875 +L 19.671875 29.296875 +L 19.671875 0 +L 9.8125 0 +z +" id="BitstreamVeraSans-Roman-50"/> + <path d="M 53.515625 70.515625 +L 53.515625 60.890625 +Q 47.90625 63.578125 42.921875 64.890625 +Q 37.9375 66.21875 33.296875 66.21875 +Q 25.25 66.21875 20.875 63.09375 +Q 16.5 59.96875 16.5 54.203125 +Q 16.5 49.359375 19.40625 46.890625 +Q 22.3125 44.4375 30.421875 42.921875 +L 36.375 41.703125 +Q 47.40625 39.59375 52.65625 34.296875 +Q 57.90625 29 57.90625 20.125 +Q 57.90625 9.515625 50.796875 4.046875 +Q 43.703125 -1.421875 29.984375 -1.421875 +Q 24.8125 -1.421875 18.96875 -0.25 +Q 13.140625 0.921875 6.890625 3.21875 +L 6.890625 13.375 +Q 12.890625 10.015625 18.65625 8.296875 +Q 24.421875 6.59375 29.984375 6.59375 +Q 38.421875 6.59375 43.015625 9.90625 +Q 47.609375 13.234375 47.609375 19.390625 +Q 47.609375 24.75 44.3125 27.78125 +Q 41.015625 30.8125 33.5 32.328125 +L 27.484375 33.5 +Q 16.453125 35.6875 11.515625 40.375 +Q 6.59375 45.0625 6.59375 53.421875 +Q 6.59375 63.09375 13.40625 68.65625 +Q 20.21875 74.21875 32.171875 74.21875 +Q 37.3125 74.21875 42.625 73.28125 +Q 47.953125 72.359375 53.515625 70.515625 +" id="BitstreamVeraSans-Roman-53"/> + <path d="M 28.609375 0 +L 0.78125 72.90625 +L 11.078125 72.90625 +L 34.1875 11.53125 +L 57.328125 72.90625 +L 67.578125 72.90625 +L 39.796875 0 +z +" id="BitstreamVeraSans-Roman-56"/> + <path d="M 6.296875 72.90625 +L 16.890625 72.90625 +L 35.015625 45.796875 +L 53.21875 72.90625 +L 63.8125 72.90625 +L 40.375 37.890625 +L 65.375 0 +L 54.78125 0 +L 34.28125 31 +L 13.625 0 +L 2.984375 0 +L 29 38.921875 +z +" id="BitstreamVeraSans-Roman-58"/> + <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="BitstreamVeraSans-Roman-72"/> + </defs> + <g transform="translate(336.639375 330.97275)scale(0.144 -0.144)"> + <use xlink:href="#BitstreamVeraSans-Roman-69"/> + <use x="27.783203125" xlink:href="#BitstreamVeraSans-Roman-70"/> + <use x="91.259765625" xlink:href="#BitstreamVeraSans-Roman-70"/> + <use x="154.736328125" xlink:href="#BitstreamVeraSans-Roman-53"/> + <use x="218.212890625" xlink:href="#BitstreamVeraSans-Roman-50"/> + <use x="278.515625" xlink:href="#BitstreamVeraSans-Roman-20"/> + <use x="310.302734375" xlink:href="#BitstreamVeraSans-Roman-41"/> + <use x="378.6171875" xlink:href="#BitstreamVeraSans-Roman-56"/> + <use x="447.025390625" xlink:href="#BitstreamVeraSans-Roman-58"/> + <use x="515.53125" xlink:href="#BitstreamVeraSans-Roman-20"/> + <use x="547.318359375" xlink:href="#BitstreamVeraSans-Roman-28"/> + <use x="586.33203125" xlink:href="#BitstreamVeraSans-Roman-65"/> + <use x="647.85546875" xlink:href="#BitstreamVeraSans-Roman-39"/> + <use x="711.478515625" xlink:href="#BitstreamVeraSans-Roman-29"/> + <use x="750.4921875" xlink:href="#BitstreamVeraSans-Roman-38"/> + <use x="814.115234375" xlink:href="#BitstreamVeraSans-Roman-2e"/> + <use x="845.90234375" xlink:href="#BitstreamVeraSans-Roman-32"/> + <use x="909.525390625" xlink:href="#BitstreamVeraSans-Roman-2e"/> + <use x="941.3125" xlink:href="#BitstreamVeraSans-Roman-32"/> + <use x="1004.93554688" xlink:href="#BitstreamVeraSans-Roman-20"/> + <use x="1036.72265625" xlink:href="#BitstreamVeraSans-Roman-28"/> + <use x="1075.73632812" xlink:href="#BitstreamVeraSans-Roman-72"/> + <use x="1116.84960938" xlink:href="#BitstreamVeraSans-Roman-34"/> + <use x="1180.47265625" xlink:href="#BitstreamVeraSans-Roman-36"/> + <use x="1244.09570312" xlink:href="#BitstreamVeraSans-Roman-32"/> + <use x="1307.71875" xlink:href="#BitstreamVeraSans-Roman-31"/> + <use x="1371.34179688" xlink:href="#BitstreamVeraSans-Roman-32"/> + <use x="1434.96484375" xlink:href="#BitstreamVeraSans-Roman-29"/> + </g> + </g> + </g> + </g> + </g> + <defs> + <clipPath id="peac63e4380"> + <rect height="328.1175" width="701.1675" x="72.0225" y="18.81"/> + </clipPath> + </defs> +</svg> diff --git a/img/composite_double_18_119.png b/img/composite_double_18_119.png Binary files differ. diff --git a/img/composite_float_18_119.png b/img/composite_float_18_119.png Binary files differ. diff --git a/img/extra_double_120_30720000.png b/img/extra_double_120_30720000.png Binary files differ. diff --git a/img/extra_float_120_30720000.png b/img/extra_float_120_30720000.png Binary files differ. diff --git a/img/powers2_double_16_16777216.png b/img/powers2_double_16_16777216.png Binary files differ. diff --git a/img/powers2_float_16_16777216.png b/img/powers2_float_16_16777216.png Binary files differ. diff --git a/img/primes_double_17_127.png b/img/primes_double_17_127.png Binary files differ. diff --git a/img/primes_float_17_127.png b/img/primes_float_17_127.png Binary files differ.