Last active
June 16, 2016 05:27
-
-
Save srajangarg/5af29bc2df02b965fd3f2501198b4bf0 to your computer and use it in GitHub Desktop.
`testmul.cpp` requires only minimal changes for benchmarking `UIntPolyPiranha` too.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
0.25 1 2 0.920732 | |
0.25 2 2 0.870588 | |
0.25 3 2 0.995726 | |
0.25 4 2 1.051118 | |
0.25 5 2 1.310433 | |
0.25 6 2 1.345603 | |
0.25 7 2 1.327754 | |
0.25 8 2 1.548291 | |
0.25 9 2 1.546229 | |
0.25 10 2 1.686339 | |
0.25 11 2 1.694931 | |
0.25 12 2 1.908684 | |
0.25 13 2 1.863636 | |
0.25 14 2 1.902102 | |
0.25 15 2 1.853870 | |
0.25 16 2 2.085769 | |
0.25 17 2 1.963293 | |
0.25 18 2 2.061780 | |
0.25 19 2 2.026522 | |
0.25 20 2 2.188081 | |
0.25 21 2 2.116117 | |
0.25 22 2 2.180701 | |
0.25 23 2 2.196732 | |
0.25 24 2 2.377039 | |
0.25 25 2 2.311661 | |
0.25 26 2 2.321388 | |
0.25 27 2 2.251122 | |
0.25 28 2 2.361890 | |
0.25 29 2 2.346661 | |
0.25 30 2 2.422895 | |
0.25 31 2 2.328839 | |
0.25 32 2 2.662723 | |
0.25 33 2 2.637931 | |
0.25 34 2 2.600683 | |
0.25 35 2 2.563493 | |
0.25 36 2 2.648052 | |
0.25 37 2 2.675465 | |
0.25 38 2 2.639657 | |
0.25 39 2 2.559473 | |
0.25 40 2 2.676273 | |
0.25 1 5 0.905405 | |
0.25 2 5 0.701961 | |
0.25 3 5 0.946058 | |
0.25 4 5 0.853279 | |
0.25 5 5 1.042153 | |
0.25 6 5 0.950896 | |
0.25 7 5 0.843320 | |
0.25 8 5 0.826772 | |
0.25 9 5 0.858082 | |
0.25 10 5 0.818190 | |
0.25 11 5 0.782269 | |
0.25 12 5 0.724627 | |
0.25 13 5 0.692902 | |
0.25 14 5 0.655985 | |
0.25 15 5 0.604409 | |
0.25 16 5 0.666917 | |
0.25 17 5 0.693396 | |
0.25 18 5 0.704729 | |
0.25 19 5 0.680645 | |
0.25 20 5 0.636111 | |
0.25 21 5 0.611391 | |
0.25 22 5 0.597241 | |
0.25 23 5 0.615393 | |
0.25 24 5 0.623202 | |
0.25 25 5 0.621141 | |
0.25 26 5 0.615499 | |
0.25 27 5 0.621549 | |
0.25 28 5 0.593440 | |
0.25 29 5 0.571707 | |
0.25 30 5 0.563221 | |
0.25 31 5 0.550122 | |
0.25 32 5 0.693476 | |
0.25 33 5 0.736488 | |
0.25 34 5 0.720427 | |
0.25 35 5 0.693704 | |
0.25 36 5 0.648308 | |
0.25 37 5 0.632498 | |
0.25 38 5 0.656813 | |
0.25 39 5 0.653280 | |
0.25 40 5 0.653163 | |
0.25 1 10 1.042253 | |
0.25 2 10 0.612245 | |
0.25 3 10 0.940687 | |
0.25 4 10 0.746147 | |
0.25 5 10 0.918396 | |
0.25 6 10 0.658402 | |
0.25 7 10 0.477145 | |
0.25 8 10 0.473863 | |
0.25 9 10 0.565043 | |
0.25 10 10 0.506559 | |
0.25 11 10 0.438988 | |
0.25 12 10 0.411351 | |
0.25 13 10 0.553009 | |
0.25 14 10 0.522201 | |
0.25 15 10 0.488957 | |
0.25 16 10 0.593715 | |
0.25 17 10 0.634179 | |
0.25 18 10 0.579105 | |
0.25 19 10 0.597750 | |
0.25 20 10 0.700422 | |
0.25 21 10 0.691377 | |
0.25 22 10 0.675060 | |
0.25 23 10 0.675184 | |
0.25 24 10 0.728630 | |
0.25 25 10 0.723344 | |
0.25 26 10 0.642841 | |
0.25 27 10 0.544974 | |
0.25 28 10 0.530345 | |
0.25 29 10 0.540237 | |
0.25 30 10 0.558128 | |
0.25 31 10 0.509609 | |
0.25 32 10 0.627531 | |
0.25 33 10 0.712948 | |
0.25 34 10 0.712930 | |
0.25 35 10 0.658377 | |
0.25 36 10 0.654298 | |
0.25 37 10 0.649878 | |
0.25 38 10 0.551976 | |
0.25 39 10 0.578889 | |
0.25 40 10 0.604872 | |
0.25 1 20 0.597015 | |
0.25 2 20 0.685289 | |
0.25 3 20 0.973635 | |
0.25 4 20 0.499084 | |
0.25 5 20 0.656026 | |
0.25 6 20 0.434861 | |
0.25 7 20 0.579990 | |
0.25 8 20 0.683478 | |
0.25 9 20 0.748792 | |
0.25 10 20 0.713116 | |
0.25 11 20 0.648833 | |
0.25 12 20 0.637408 | |
0.25 13 20 0.648912 | |
0.25 14 20 0.561185 | |
0.25 15 20 0.568076 | |
0.25 16 20 0.665309 | |
0.25 17 20 0.693379 | |
0.25 18 20 0.595938 | |
0.25 19 20 0.562377 | |
0.25 20 20 0.572110 | |
0.25 21 20 0.556181 | |
0.25 22 20 0.689937 | |
0.25 23 20 0.721410 | |
0.25 24 20 0.783006 | |
0.25 25 20 0.910576 | |
0.25 26 20 0.897748 | |
0.25 27 20 0.881851 | |
0.25 28 20 0.901413 | |
0.25 29 20 0.874134 | |
0.25 30 20 0.868446 | |
0.25 31 20 0.972519 | |
0.25 32 20 1.334940 | |
0.25 33 20 1.169956 | |
0.25 34 20 1.041919 | |
0.25 35 20 0.948226 | |
0.25 36 20 1.024567 | |
0.25 37 20 1.147922 | |
0.25 38 20 1.181192 | |
0.25 39 20 1.095802 | |
0.25 40 20 1.239237 | |
0.50 1 2 0.935897 | |
0.50 2 2 0.843931 | |
0.50 3 2 0.991228 | |
0.50 4 2 1.028391 | |
0.50 5 2 1.087500 | |
0.50 6 2 1.320713 | |
0.50 7 2 1.321881 | |
0.50 8 2 1.521667 | |
0.50 9 2 1.511204 | |
0.50 10 2 1.772941 | |
0.50 11 2 1.642933 | |
0.50 12 2 1.972073 | |
0.50 13 2 1.895169 | |
0.50 14 2 1.928222 | |
0.50 15 2 1.799747 | |
0.50 16 2 1.955898 | |
0.50 17 2 2.051534 | |
0.50 18 2 2.048345 | |
0.50 19 2 2.068590 | |
0.50 20 2 2.084526 | |
0.50 21 2 2.106862 | |
0.50 22 2 2.163623 | |
0.50 23 2 2.128920 | |
0.50 24 2 2.300739 | |
0.50 25 2 2.241213 | |
0.50 26 2 2.301763 | |
0.50 27 2 2.268090 | |
0.50 28 2 2.234951 | |
0.50 29 2 2.241601 | |
0.50 30 2 2.324255 | |
0.50 31 2 2.297378 | |
0.50 32 2 2.580574 | |
0.50 33 2 2.546423 | |
0.50 34 2 2.560201 | |
0.50 35 2 2.462540 | |
0.50 36 2 2.472971 | |
0.50 37 2 2.513893 | |
0.50 38 2 2.494442 | |
0.50 39 2 2.487386 | |
0.50 40 2 2.609219 | |
0.50 1 5 0.413043 | |
0.50 2 5 0.819820 | |
0.50 3 5 0.795031 | |
0.50 4 5 0.977320 | |
0.50 5 5 0.985283 | |
0.50 6 5 0.938299 | |
0.50 7 5 0.952287 | |
0.50 8 5 1.011650 | |
0.50 9 5 1.073439 | |
0.50 10 5 1.002507 | |
0.50 11 5 0.986605 | |
0.50 12 5 1.017213 | |
0.50 13 5 0.972118 | |
0.50 14 5 0.995708 | |
0.50 15 5 0.933253 | |
0.50 16 5 1.085100 | |
0.50 17 5 1.074252 | |
0.50 18 5 1.079681 | |
0.50 19 5 1.031916 | |
0.50 20 5 1.065061 | |
0.50 21 5 1.006243 | |
0.50 22 5 1.007861 | |
0.50 23 5 0.973107 | |
0.50 24 5 1.047924 | |
0.50 25 5 1.005152 | |
0.50 26 5 0.933297 | |
0.50 27 5 0.790078 | |
0.50 28 5 0.801304 | |
0.50 29 5 0.778265 | |
0.50 30 5 0.767626 | |
0.50 31 5 0.751403 | |
0.50 32 5 0.885705 | |
0.50 33 5 0.954206 | |
0.50 34 5 0.994928 | |
0.50 35 5 0.980895 | |
0.50 36 5 0.963505 | |
0.50 37 5 0.954713 | |
0.50 38 5 0.945958 | |
0.50 39 5 0.787229 | |
0.50 40 5 0.786202 | |
0.50 1 10 0.435897 | |
0.50 2 10 0.882943 | |
0.50 3 10 0.937340 | |
0.50 4 10 0.811914 | |
0.50 5 10 0.921072 | |
0.50 6 10 0.768929 | |
0.50 7 10 0.783609 | |
0.50 8 10 0.847435 | |
0.50 9 10 0.873542 | |
0.50 10 10 0.802723 | |
0.50 11 10 0.755119 | |
0.50 12 10 0.774996 | |
0.50 13 10 0.762498 | |
0.50 14 10 0.764942 | |
0.50 15 10 0.685548 | |
0.50 16 10 0.785128 | |
0.50 17 10 0.827140 | |
0.50 18 10 0.768919 | |
0.50 19 10 0.711161 | |
0.50 20 10 0.720497 | |
0.50 21 10 0.705480 | |
0.50 22 10 0.705566 | |
0.50 23 10 0.681339 | |
0.50 24 10 0.875158 | |
0.50 25 10 0.884822 | |
0.50 26 10 0.869729 | |
0.50 27 10 0.855971 | |
0.50 28 10 0.840213 | |
0.50 29 10 0.830339 | |
0.50 30 10 0.821327 | |
0.50 31 10 0.805299 | |
0.50 32 10 1.051380 | |
0.50 33 10 1.068212 | |
0.50 34 10 0.986956 | |
0.50 35 10 1.114543 | |
0.50 36 10 1.086768 | |
0.50 37 10 1.054355 | |
0.50 38 10 1.034510 | |
0.50 39 10 1.017812 | |
0.50 40 10 1.024016 | |
0.50 1 20 0.602273 | |
0.50 2 20 0.756592 | |
0.50 3 20 0.956352 | |
0.50 4 20 0.768443 | |
0.50 5 20 0.832608 | |
0.50 6 20 0.650228 | |
0.50 7 20 0.655464 | |
0.50 8 20 0.728839 | |
0.50 9 20 0.818522 | |
0.50 10 20 0.701628 | |
0.50 11 20 0.654386 | |
0.50 12 20 0.860174 | |
0.50 13 20 0.903440 | |
0.50 14 20 0.845951 | |
0.50 15 20 0.819050 | |
0.50 16 20 1.035013 | |
0.50 17 20 1.015029 | |
0.50 18 20 0.930716 | |
0.50 19 20 0.907920 | |
0.50 20 20 0.914579 | |
0.50 21 20 0.929996 | |
0.50 22 20 0.980354 | |
0.50 23 20 0.958083 | |
0.50 24 20 1.056175 | |
0.50 25 20 0.979388 | |
0.50 26 20 0.918555 | |
0.50 27 20 0.910534 | |
0.50 28 20 0.971885 | |
0.50 29 20 0.961905 | |
0.50 30 20 0.941842 | |
0.50 31 20 0.936239 | |
0.50 32 20 1.159742 | |
0.50 33 20 1.152365 | |
0.50 34 20 1.093278 | |
0.50 35 20 1.031730 | |
0.50 36 20 1.067339 | |
0.50 37 20 1.053831 | |
0.50 38 20 1.012481 | |
0.50 39 20 0.964157 | |
0.50 40 20 1.016333 | |
0.75 1 2 0.736842 | |
0.75 2 2 0.902857 | |
0.75 3 2 0.832636 | |
0.75 4 2 1.127796 | |
0.75 5 2 1.243767 | |
0.75 6 2 1.364679 | |
0.75 7 2 1.265976 | |
0.75 8 2 1.572402 | |
0.75 9 2 1.512570 | |
0.75 10 2 1.705228 | |
0.75 11 2 1.628931 | |
0.75 12 2 1.815976 | |
0.75 13 2 1.802285 | |
0.75 14 2 1.788839 | |
0.75 15 2 1.858200 | |
0.75 16 2 1.853608 | |
0.75 17 2 1.990148 | |
0.75 18 2 2.043365 | |
0.75 19 2 2.059983 | |
0.75 20 2 2.097741 | |
0.75 21 2 2.074773 | |
0.75 22 2 2.125226 | |
0.75 23 2 2.062688 | |
0.75 24 2 2.228734 | |
0.75 25 2 2.200163 | |
0.75 26 2 2.221799 | |
0.75 27 2 2.213362 | |
0.75 28 2 2.215193 | |
0.75 29 2 2.243599 | |
0.75 30 2 2.265260 | |
0.75 31 2 2.227916 | |
0.75 32 2 2.582224 | |
0.75 33 2 2.575805 | |
0.75 34 2 2.558686 | |
0.75 35 2 2.595912 | |
0.75 36 2 2.572041 | |
0.75 37 2 2.500160 | |
0.75 38 2 2.577204 | |
0.75 39 2 2.524955 | |
0.75 40 2 2.575410 | |
0.75 1 5 0.985075 | |
0.75 2 5 0.763158 | |
0.75 3 5 0.944573 | |
0.75 4 5 1.043027 | |
0.75 5 5 1.106460 | |
0.75 6 5 1.058480 | |
0.75 7 5 1.021215 | |
0.75 8 5 1.148910 | |
0.75 9 5 1.137128 | |
0.75 10 5 1.112497 | |
0.75 11 5 1.068092 | |
0.75 12 5 1.145643 | |
0.75 13 5 1.087245 | |
0.75 14 5 1.130267 | |
0.75 15 5 1.040339 | |
0.75 16 5 1.206374 | |
0.75 17 5 1.240003 | |
0.75 18 5 1.348112 | |
0.75 19 5 1.306045 | |
0.75 20 5 1.317805 | |
0.75 21 5 1.272962 | |
0.75 22 5 1.289000 | |
0.75 23 5 1.276298 | |
0.75 24 5 1.368915 | |
0.75 25 5 1.340212 | |
0.75 26 5 1.312344 | |
0.75 27 5 1.344943 | |
0.75 28 5 1.334849 | |
0.75 29 5 1.290645 | |
0.75 30 5 1.271008 | |
0.75 31 5 1.252056 | |
0.75 32 5 1.515351 | |
0.75 33 5 1.486818 | |
0.75 34 5 1.467067 | |
0.75 35 5 1.403172 | |
0.75 36 5 1.220999 | |
0.75 37 5 1.210747 | |
0.75 38 5 1.187626 | |
0.75 39 5 1.167779 | |
0.75 40 5 1.175249 | |
0.75 1 10 1.276596 | |
0.75 2 10 0.833898 | |
0.75 3 10 0.902758 | |
0.75 4 10 0.914307 | |
0.75 5 10 0.965015 | |
0.75 6 10 0.877066 | |
0.75 7 10 0.909091 | |
0.75 8 10 1.010676 | |
0.75 9 10 1.030499 | |
0.75 10 10 1.007481 | |
0.75 11 10 0.928306 | |
0.75 12 10 1.004610 | |
0.75 13 10 1.021065 | |
0.75 14 10 0.993791 | |
0.75 15 10 0.945101 | |
0.75 16 10 1.096295 | |
0.75 17 10 1.149184 | |
0.75 18 10 1.113083 | |
0.75 19 10 1.071716 | |
0.75 20 10 1.082510 | |
0.75 21 10 1.045888 | |
0.75 22 10 1.102533 | |
0.75 23 10 1.045615 | |
0.75 24 10 1.120190 | |
0.75 25 10 1.098540 | |
0.75 26 10 1.059406 | |
0.75 27 10 1.030966 | |
0.75 28 10 1.033037 | |
0.75 29 10 1.022366 | |
0.75 30 10 1.014726 | |
0.75 31 10 1.011907 | |
0.75 32 10 1.208960 | |
0.75 33 10 1.335119 | |
0.75 34 10 1.379145 | |
0.75 35 10 1.310285 | |
0.75 36 10 1.267213 | |
0.75 37 10 1.244083 | |
0.75 38 10 1.218405 | |
0.75 39 10 1.185468 | |
0.75 40 10 1.403568 | |
0.75 1 20 0.954545 | |
0.75 2 20 0.740426 | |
0.75 3 20 0.935825 | |
0.75 4 20 0.922863 | |
0.75 5 20 0.956009 | |
0.75 6 20 0.854246 | |
0.75 7 20 0.887026 | |
0.75 8 20 1.017918 | |
0.75 9 20 1.024796 | |
0.75 10 20 0.942050 | |
0.75 11 20 0.958937 | |
0.75 12 20 1.021588 | |
0.75 13 20 0.948884 | |
0.75 14 20 0.903477 | |
0.75 15 20 0.891936 | |
0.75 16 20 1.412113 | |
0.75 17 20 1.391156 | |
0.75 18 20 1.267231 | |
0.75 19 20 1.186695 | |
0.75 20 20 1.388773 | |
0.75 21 20 1.377368 | |
0.75 22 20 1.344694 | |
0.75 23 20 1.318689 | |
0.75 24 20 1.451365 | |
0.75 25 20 1.426674 | |
0.75 26 20 1.372205 | |
0.75 27 20 1.307741 | |
0.75 28 20 1.299228 | |
0.75 29 20 1.262797 | |
0.75 30 20 1.240593 | |
0.75 31 20 1.221706 | |
0.75 32 20 1.596934 | |
0.75 33 20 1.530585 | |
0.75 34 20 1.504506 | |
0.75 35 20 1.498731 | |
0.75 36 20 1.478444 | |
0.75 37 20 1.462232 | |
0.75 38 20 1.435128 | |
0.75 39 20 1.396399 | |
0.75 40 20 1.461734 | |
1.00 1 2 0.977528 | |
1.00 2 2 0.822857 | |
1.00 3 2 0.819231 | |
1.00 4 2 1.166667 | |
1.00 5 2 1.256000 | |
1.00 6 2 1.317778 | |
1.00 7 2 1.245819 | |
1.00 8 2 1.541667 | |
1.00 9 2 1.635328 | |
1.00 10 2 1.649294 | |
1.00 11 2 1.594480 | |
1.00 12 2 1.821320 | |
1.00 13 2 1.760135 | |
1.00 14 2 1.917722 | |
1.00 15 2 1.871446 | |
1.00 16 2 1.926185 | |
1.00 17 2 1.958791 | |
1.00 18 2 1.987749 | |
1.00 19 2 2.006437 | |
1.00 20 2 2.073330 | |
1.00 21 2 2.097189 | |
1.00 22 2 2.061085 | |
1.00 23 2 2.038678 | |
1.00 24 2 2.212565 | |
1.00 25 2 2.308955 | |
1.00 26 2 2.230134 | |
1.00 27 2 2.213822 | |
1.00 28 2 2.330735 | |
1.00 29 2 2.219316 | |
1.00 30 2 2.281876 | |
1.00 31 2 2.200080 | |
1.00 32 2 2.516607 | |
1.00 33 2 2.546390 | |
1.00 34 2 2.573432 | |
1.00 35 2 2.573845 | |
1.00 36 2 2.555429 | |
1.00 37 2 2.556754 | |
1.00 38 2 2.641587 | |
1.00 39 2 2.588066 | |
1.00 40 2 2.637142 | |
1.00 1 5 1.508197 | |
1.00 2 5 0.804167 | |
1.00 3 5 1.015345 | |
1.00 4 5 1.028190 | |
1.00 5 5 0.955649 | |
1.00 6 5 1.052303 | |
1.00 7 5 1.078454 | |
1.00 8 5 1.219259 | |
1.00 9 5 1.222356 | |
1.00 10 5 1.214058 | |
1.00 11 5 1.208257 | |
1.00 12 5 1.238436 | |
1.00 13 5 1.237160 | |
1.00 14 5 1.289574 | |
1.00 15 5 1.159021 | |
1.00 16 5 1.411965 | |
1.00 17 5 1.358945 | |
1.00 18 5 1.335417 | |
1.00 19 5 1.340178 | |
1.00 20 5 1.327898 | |
1.00 21 5 1.289363 | |
1.00 22 5 1.287488 | |
1.00 23 5 1.269258 | |
1.00 24 5 1.326516 | |
1.00 25 5 1.293962 | |
1.00 26 5 1.297296 | |
1.00 27 5 1.319378 | |
1.00 28 5 1.289449 | |
1.00 29 5 1.293005 | |
1.00 30 5 1.260899 | |
1.00 31 5 1.240946 | |
1.00 32 5 1.482318 | |
1.00 33 5 1.475870 | |
1.00 34 5 1.466690 | |
1.00 35 5 1.415656 | |
1.00 36 5 1.424185 | |
1.00 37 5 1.403096 | |
1.00 38 5 1.376192 | |
1.00 39 5 1.360330 | |
1.00 40 5 1.367066 | |
1.00 1 10 0.492063 | |
1.00 2 10 0.861486 | |
1.00 3 10 0.836305 | |
1.00 4 10 1.035642 | |
1.00 5 10 1.058361 | |
1.00 6 10 1.140777 | |
1.00 7 10 1.082254 | |
1.00 8 10 1.351708 | |
1.00 9 10 1.270816 | |
1.00 10 10 1.233207 | |
1.00 11 10 1.163999 | |
1.00 12 10 1.217680 | |
1.00 13 10 1.248432 | |
1.00 14 10 1.203313 | |
1.00 15 10 1.168862 | |
1.00 16 10 1.423264 | |
1.00 17 10 1.371786 | |
1.00 18 10 1.296871 | |
1.00 19 10 1.277051 | |
1.00 20 10 1.258878 | |
1.00 21 10 1.279368 | |
1.00 22 10 1.252771 | |
1.00 23 10 1.200952 | |
1.00 24 10 1.304373 | |
1.00 25 10 1.272911 | |
1.00 26 10 1.298844 | |
1.00 27 10 1.291975 | |
1.00 28 10 1.261765 | |
1.00 29 10 1.241308 | |
1.00 30 10 1.199764 | |
1.00 31 10 1.188305 | |
1.00 32 10 1.456097 | |
1.00 33 10 1.415493 | |
1.00 34 10 1.387193 | |
1.00 35 10 1.375507 | |
1.00 36 10 1.365090 | |
1.00 37 10 1.357948 | |
1.00 38 10 1.339260 | |
1.00 39 10 1.325723 | |
1.00 40 10 1.341458 | |
1.00 1 20 1.142857 | |
1.00 2 20 0.756579 | |
1.00 3 20 0.933206 | |
1.00 4 20 1.107515 | |
1.00 5 20 1.006865 | |
1.00 6 20 1.119345 | |
1.00 7 20 1.042171 | |
1.00 8 20 1.279059 | |
1.00 9 20 1.197219 | |
1.00 10 20 1.219098 | |
1.00 11 20 1.137432 | |
1.00 12 20 1.296663 | |
1.00 13 20 1.117636 | |
1.00 14 20 1.140300 | |
1.00 15 20 1.130867 | |
1.00 16 20 1.345281 | |
1.00 17 20 1.298988 | |
1.00 18 20 1.273578 | |
1.00 19 20 1.275561 | |
1.00 20 20 1.277137 | |
1.00 21 20 1.265707 | |
1.00 22 20 1.272050 | |
1.00 23 20 1.468941 | |
1.00 24 20 1.614919 | |
1.00 25 20 1.611308 | |
1.00 26 20 1.591791 | |
1.00 27 20 1.563769 | |
1.00 28 20 1.540493 | |
1.00 29 20 1.527145 | |
1.00 30 20 1.483305 | |
1.00 31 20 1.455346 | |
1.00 32 20 1.894575 | |
1.00 33 20 1.780600 | |
1.00 34 20 1.722641 | |
1.00 35 20 1.652664 | |
1.00 36 20 1.789997 | |
1.00 37 20 1.777880 | |
1.00 38 20 1.749541 | |
1.00 39 20 1.724420 | |
1.00 40 20 1.787616 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import matplotlib.pyplot as plt | |
import pandas as pd | |
import numpy as np | |
from statsmodels.nonparametric.smoothers_lowess import lowess | |
data = pd.read_csv("piranha", sep=" ", header=None).values | |
sparseness = [0.25, 0.5, 0.75, 1] | |
lens = [5, 10, 15, 20] | |
alldata = {} | |
div = len(lens) * len(sparseness) | |
i = 0 | |
for s in sparseness: | |
alldata[s] = {} | |
for c in lens: | |
xx = data[i:i+(len(data)/div), 1] | |
yy = data[i:i+(len(data)/div), 3] | |
filtered = lowess(yy, xx, is_sorted=True, frac=0.2, it=0) | |
alldata[s][c] = [filtered[:,0], filtered[:,1]] | |
i += len(data)/div | |
plt.figure(figsize=(15, 25)) | |
plt.subplot(411) | |
plt.plot(alldata[1][5][0], alldata[1][5][1], 'r', alldata[1][10][0], alldata[1][10][1], 'g', alldata[1][15][0], alldata[1][15][1], 'b', alldata[1][20][0], alldata[1][20][1], 'y') | |
plt.axhline(y=1, color='black') | |
plt.legend(['Poly Length = 2', "Poly Length = 5", "Poly Length = 10", "Poly Length = 20"], loc=2) | |
plt.ylabel("Time taken `pow` : naive / withEBS") | |
plt.title("Sparseness : 1.0") | |
plt.subplot(412) | |
plt.plot(alldata[0.75][5][0], alldata[0.75][5][1], 'r', alldata[0.75][10][0], alldata[0.75][10][1], 'g', alldata[0.75][15][0], alldata[0.75][15][1], 'b', alldata[0.75][20][0], alldata[0.75][20][1], 'y') | |
plt.axhline(y=1, color='black') | |
plt.legend(['Poly Length = 2', "Poly Length = 5", "Poly Length = 10", "Poly Length = 20"], loc=2) | |
plt.ylabel("Time taken `pow` : naive / withEBS") | |
plt.title("Sparseness : 0.75") | |
plt.subplot(413) | |
plt.plot(alldata[0.5][5][0], alldata[0.5][5][1], 'r', alldata[0.5][10][0], alldata[0.5][10][1], 'g', alldata[0.5][15][0], alldata[0.5][15][1], 'b', alldata[0.5][20][0], alldata[0.5][20][1], 'y') | |
plt.axhline(y=1, color='black') | |
plt.legend(['Poly Length = 2', "Poly Length = 5", "Poly Length = 10", "Poly Length = 20"], loc=2) | |
plt.ylabel("Time taken `pow` : naive / withEBS") | |
plt.title("Sparseness : 0.5") | |
plt.subplot(414) | |
plt.plot(alldata[0.25][5][0], alldata[0.25][5][1], 'r', alldata[0.25][10][0], alldata[0.25][10][1], 'g', alldata[0.25][15][0], alldata[0.25][15][1], 'b', alldata[0.25][20][0], alldata[0.25][20][1], 'y') | |
plt.axhline(y=1, color='black') | |
plt.legend(['Poly Length = 2', "Poly Length = 5", "Poly Length = 10", "Poly Length = 20"], loc=2) | |
plt.ylabel("Time taken `pow` : naive / withEBS") | |
plt.title("Sparseness : 0.25") | |
plt.xlabel("Power Taken") | |
# plt.show() | |
plt.savefig("piranha.png") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
0.25 1 2 0.914692 | |
0.25 2 2 0.809302 | |
0.25 3 2 0.977236 | |
0.25 4 2 1.022727 | |
0.25 5 2 1.154952 | |
0.25 6 2 1.446953 | |
0.25 7 2 1.476514 | |
0.25 8 2 1.507573 | |
0.25 9 2 1.701418 | |
0.25 10 2 1.974614 | |
0.25 11 2 2.049770 | |
0.25 12 2 2.466080 | |
0.25 13 2 2.508579 | |
0.25 14 2 2.755612 | |
0.25 15 2 2.787203 | |
0.25 16 2 2.599537 | |
0.25 17 2 2.732372 | |
0.25 18 2 3.023744 | |
0.25 19 2 3.148983 | |
0.25 20 2 3.393708 | |
0.25 21 2 3.543487 | |
0.25 22 2 3.834051 | |
0.25 23 2 4.010633 | |
0.25 24 2 4.369284 | |
0.25 25 2 4.513785 | |
0.25 26 2 4.802431 | |
0.25 27 2 5.000475 | |
0.25 28 2 5.269277 | |
0.25 29 2 5.375397 | |
0.25 30 2 5.467456 | |
0.25 31 2 5.518408 | |
0.25 32 2 4.722686 | |
0.25 33 2 4.877772 | |
0.25 34 2 5.047751 | |
0.25 35 2 5.136899 | |
0.25 36 2 5.417200 | |
0.25 37 2 5.595629 | |
0.25 38 2 5.879135 | |
0.25 39 2 5.944514 | |
0.25 40 2 6.306650 | |
0.25 1 5 0.792857 | |
0.25 2 5 0.691466 | |
0.25 3 5 0.818310 | |
0.25 4 5 0.854361 | |
0.25 5 5 1.109764 | |
0.25 6 5 1.393807 | |
0.25 7 5 1.533360 | |
0.25 8 5 1.322977 | |
0.25 9 5 1.631411 | |
0.25 10 5 1.865136 | |
0.25 11 5 2.173563 | |
0.25 12 5 2.498991 | |
0.25 13 5 2.726105 | |
0.25 14 5 2.977612 | |
0.25 15 5 3.189549 | |
0.25 16 5 2.540133 | |
0.25 17 5 2.822435 | |
0.25 18 5 3.105834 | |
0.25 19 5 3.373756 | |
0.25 20 5 3.743944 | |
0.25 21 5 3.982974 | |
0.25 22 5 4.322650 | |
0.25 23 5 4.545151 | |
0.25 24 5 5.026132 | |
0.25 25 5 5.458582 | |
0.25 26 5 5.325868 | |
0.25 27 5 5.389738 | |
0.25 28 5 5.874439 | |
0.25 29 5 5.991137 | |
0.25 30 5 6.469860 | |
0.25 31 5 6.612309 | |
0.25 32 5 4.470475 | |
0.25 33 5 4.760853 | |
0.25 34 5 5.019763 | |
0.25 35 5 5.381712 | |
0.25 36 5 5.810513 | |
0.25 37 5 6.234396 | |
0.25 38 5 6.479315 | |
0.25 39 5 6.892679 | |
0.25 40 5 7.161990 | |
0.25 1 10 0.834395 | |
0.25 2 10 0.572391 | |
0.25 3 10 0.858903 | |
0.25 4 10 0.787762 | |
0.25 5 10 1.125717 | |
0.25 6 10 1.387424 | |
0.25 7 10 1.723462 | |
0.25 8 10 1.306716 | |
0.25 9 10 1.703560 | |
0.25 10 10 1.890212 | |
0.25 11 10 2.388957 | |
0.25 12 10 2.520637 | |
0.25 13 10 2.869185 | |
0.25 14 10 3.158777 | |
0.25 15 10 3.472626 | |
0.25 16 10 2.245224 | |
0.25 17 10 2.638179 | |
0.25 18 10 3.014491 | |
0.25 19 10 3.374874 | |
0.25 20 10 3.645337 | |
0.25 21 10 4.114320 | |
0.25 22 10 5.436353 | |
0.25 23 10 4.686387 | |
0.25 24 10 5.313654 | |
0.25 25 10 5.659436 | |
0.25 26 10 6.100713 | |
0.25 27 10 6.099527 | |
0.25 28 10 6.399863 | |
0.25 29 10 6.871424 | |
0.25 30 10 7.352224 | |
0.25 31 10 7.472288 | |
0.25 32 10 4.439260 | |
0.25 33 10 4.764085 | |
0.25 34 10 5.167819 | |
0.25 35 10 5.441831 | |
0.25 36 10 5.867848 | |
0.25 37 10 6.791822 | |
0.25 38 10 7.145518 | |
0.25 39 10 7.052399 | |
0.25 40 10 7.552248 | |
0.25 1 20 0.872483 | |
0.25 2 20 0.514416 | |
0.25 3 20 0.811676 | |
0.25 4 20 0.776032 | |
0.25 5 20 1.194595 | |
0.25 6 20 1.405444 | |
0.25 7 20 1.522588 | |
0.25 8 20 1.276056 | |
0.25 9 20 1.571442 | |
0.25 10 20 2.016707 | |
0.25 11 20 2.333255 | |
0.25 12 20 2.753829 | |
0.25 13 20 3.011116 | |
0.25 14 20 3.175826 | |
0.25 15 20 3.594528 | |
0.25 16 20 2.354520 | |
0.25 17 20 2.723870 | |
0.25 18 20 3.059678 | |
0.25 19 20 3.456938 | |
0.25 20 20 3.863935 | |
0.25 21 20 4.276174 | |
0.25 22 20 4.625532 | |
0.25 23 20 5.097116 | |
0.25 24 20 5.619105 | |
0.25 25 20 5.948495 | |
0.25 26 20 6.190010 | |
0.25 27 20 6.588262 | |
0.25 28 20 7.043773 | |
0.25 29 20 7.367755 | |
0.25 30 20 7.676271 | |
0.25 31 20 7.923923 | |
0.25 32 20 4.496545 | |
0.25 33 20 4.675737 | |
0.25 34 20 5.246616 | |
0.25 35 20 5.620951 | |
0.25 36 20 6.447319 | |
0.25 37 20 6.422633 | |
0.25 38 20 6.754324 | |
0.25 39 20 7.383192 | |
0.25 40 20 7.855619 | |
0.50 1 2 1.264151 | |
0.50 2 2 0.727012 | |
0.50 3 2 0.977226 | |
0.50 4 2 1.014514 | |
0.50 5 2 1.176822 | |
0.50 6 2 1.126058 | |
0.50 7 2 1.508234 | |
0.50 8 2 1.467343 | |
0.50 9 2 1.703575 | |
0.50 10 2 1.965986 | |
0.50 11 2 2.249891 | |
0.50 12 2 2.446119 | |
0.50 13 2 2.536732 | |
0.50 14 2 2.708597 | |
0.50 15 2 2.801397 | |
0.50 16 2 2.660016 | |
0.50 17 2 2.760537 | |
0.50 18 2 2.970699 | |
0.50 19 2 3.179322 | |
0.50 20 2 3.543196 | |
0.50 21 2 3.689053 | |
0.50 22 2 3.926349 | |
0.50 23 2 4.070129 | |
0.50 24 2 4.495186 | |
0.50 25 2 4.407033 | |
0.50 26 2 4.707016 | |
0.50 27 2 4.883368 | |
0.50 28 2 5.197266 | |
0.50 29 2 5.227575 | |
0.50 30 2 5.355698 | |
0.50 31 2 5.528788 | |
0.50 32 2 4.715000 | |
0.50 33 2 4.878923 | |
0.50 34 2 5.099911 | |
0.50 35 2 5.318170 | |
0.50 36 2 5.567345 | |
0.50 37 2 5.746859 | |
0.50 38 2 5.942800 | |
0.50 39 2 6.087569 | |
0.50 40 2 6.522742 | |
0.50 1 5 0.737589 | |
0.50 2 5 0.703170 | |
0.50 3 5 0.909274 | |
0.50 4 5 0.827189 | |
0.50 5 5 1.078998 | |
0.50 6 5 1.338525 | |
0.50 7 5 1.421299 | |
0.50 8 5 1.386764 | |
0.50 9 5 1.660876 | |
0.50 10 5 1.851761 | |
0.50 11 5 2.123446 | |
0.50 12 5 2.420099 | |
0.50 13 5 2.563853 | |
0.50 14 5 2.850000 | |
0.50 15 5 2.900699 | |
0.50 16 5 2.548105 | |
0.50 17 5 2.698685 | |
0.50 18 5 3.083780 | |
0.50 19 5 3.289787 | |
0.50 20 5 3.498774 | |
0.50 21 5 3.883441 | |
0.50 22 5 4.192586 | |
0.50 23 5 4.395996 | |
0.50 24 5 4.732297 | |
0.50 25 5 5.070395 | |
0.50 26 5 5.175910 | |
0.50 27 5 5.390022 | |
0.50 28 5 5.725956 | |
0.50 29 5 5.869589 | |
0.50 30 5 5.980732 | |
0.50 31 5 6.052760 | |
0.50 32 5 4.718761 | |
0.50 33 5 4.803154 | |
0.50 34 5 5.146460 | |
0.50 35 5 5.449741 | |
0.50 36 5 5.669892 | |
0.50 37 5 6.194589 | |
0.50 38 5 6.486901 | |
0.50 39 5 6.741563 | |
0.50 40 5 7.912440 | |
0.50 1 10 0.771654 | |
0.50 2 10 0.603306 | |
0.50 3 10 0.832452 | |
0.50 4 10 0.801377 | |
0.50 5 10 1.062500 | |
0.50 6 10 1.304911 | |
0.50 7 10 1.542261 | |
0.50 8 10 1.334692 | |
0.50 9 10 1.676135 | |
0.50 10 10 1.823103 | |
0.50 11 10 2.144995 | |
0.50 12 10 2.558114 | |
0.50 13 10 2.733360 | |
0.50 14 10 2.951734 | |
0.50 15 10 3.144721 | |
0.50 16 10 2.444389 | |
0.50 17 10 3.036936 | |
0.50 18 10 2.901025 | |
0.50 19 10 3.126255 | |
0.50 20 10 3.446236 | |
0.50 21 10 3.878967 | |
0.50 22 10 4.194275 | |
0.50 23 10 4.409665 | |
0.50 24 10 4.785898 | |
0.50 25 10 5.228583 | |
0.50 26 10 5.558375 | |
0.50 27 10 5.874452 | |
0.50 28 10 6.143919 | |
0.50 29 10 6.108779 | |
0.50 30 10 6.737099 | |
0.50 31 10 6.934794 | |
0.50 32 10 4.767741 | |
0.50 33 10 4.987157 | |
0.50 34 10 5.241559 | |
0.50 35 10 5.597136 | |
0.50 36 10 5.907028 | |
0.50 37 10 6.225338 | |
0.50 38 10 6.715327 | |
0.50 39 10 6.823626 | |
0.50 40 10 7.496635 | |
0.50 1 20 0.756098 | |
0.50 2 20 0.441955 | |
0.50 3 20 0.836177 | |
0.50 4 20 0.778261 | |
0.50 5 20 1.077141 | |
0.50 6 20 1.392073 | |
0.50 7 20 1.576072 | |
0.50 8 20 1.392021 | |
0.50 9 20 1.687782 | |
0.50 10 20 1.965591 | |
0.50 11 20 2.356733 | |
0.50 12 20 2.567729 | |
0.50 13 20 2.953245 | |
0.50 14 20 2.987619 | |
0.50 15 20 3.370395 | |
0.50 16 20 2.336102 | |
0.50 17 20 2.796918 | |
0.50 18 20 3.062628 | |
0.50 19 20 3.249095 | |
0.50 20 20 3.813200 | |
0.50 21 20 4.256504 | |
0.50 22 20 4.607054 | |
0.50 23 20 4.954315 | |
0.50 24 20 5.138470 | |
0.50 25 20 5.760840 | |
0.50 26 20 6.157701 | |
0.50 27 20 6.344857 | |
0.50 28 20 6.667209 | |
0.50 29 20 7.052301 | |
0.50 30 20 7.367440 | |
0.50 31 20 7.641809 | |
0.50 32 20 4.484027 | |
0.50 33 20 4.783396 | |
0.50 34 20 5.154079 | |
0.50 35 20 5.438998 | |
0.50 36 20 5.856919 | |
0.50 37 20 6.251825 | |
0.50 38 20 6.573495 | |
0.50 39 20 7.086520 | |
0.50 40 20 7.610518 | |
0.75 1 2 1.137615 | |
0.75 2 2 0.793413 | |
0.75 3 2 0.969072 | |
0.75 4 2 0.908093 | |
0.75 5 2 1.227506 | |
0.75 6 2 1.408834 | |
0.75 7 2 1.516189 | |
0.75 8 2 1.495605 | |
0.75 9 2 1.699534 | |
0.75 10 2 1.986826 | |
0.75 11 2 2.150835 | |
0.75 12 2 2.480212 | |
0.75 13 2 2.604187 | |
0.75 14 2 2.737527 | |
0.75 15 2 2.753772 | |
0.75 16 2 2.672266 | |
0.75 17 2 2.925561 | |
0.75 18 2 3.090474 | |
0.75 19 2 3.321292 | |
0.75 20 2 3.468708 | |
0.75 21 2 3.632788 | |
0.75 22 2 3.804067 | |
0.75 23 2 3.919226 | |
0.75 24 2 4.467749 | |
0.75 25 2 4.616073 | |
0.75 26 2 4.855361 | |
0.75 27 2 4.856003 | |
0.75 28 2 5.269576 | |
0.75 29 2 5.185532 | |
0.75 30 2 5.332501 | |
0.75 31 2 5.315918 | |
0.75 32 2 5.078590 | |
0.75 33 2 5.060674 | |
0.75 34 2 5.209260 | |
0.75 35 2 5.407617 | |
0.75 36 2 5.730045 | |
0.75 37 2 5.891029 | |
0.75 38 2 6.094378 | |
0.75 39 2 6.251175 | |
0.75 40 2 6.703397 | |
0.75 1 5 1.152174 | |
0.75 2 5 0.717241 | |
0.75 3 5 0.888889 | |
0.75 4 5 0.813139 | |
0.75 5 5 1.074627 | |
0.75 6 5 1.273566 | |
0.75 7 5 1.436046 | |
0.75 8 5 1.398310 | |
0.75 9 5 1.581088 | |
0.75 10 5 1.833333 | |
0.75 11 5 2.082746 | |
0.75 12 5 2.257100 | |
0.75 13 5 2.528671 | |
0.75 14 5 2.750998 | |
0.75 15 5 2.806179 | |
0.75 16 5 2.461348 | |
0.75 17 5 2.693542 | |
0.75 18 5 2.909660 | |
0.75 19 5 3.150144 | |
0.75 20 5 3.577767 | |
0.75 21 5 3.814038 | |
0.75 22 5 3.926140 | |
0.75 23 5 4.255664 | |
0.75 24 5 4.589660 | |
0.75 25 5 4.754067 | |
0.75 26 5 5.089580 | |
0.75 27 5 5.204315 | |
0.75 28 5 5.371425 | |
0.75 29 5 5.502759 | |
0.75 30 5 5.805142 | |
0.75 31 5 5.840540 | |
0.75 32 5 4.794480 | |
0.75 33 5 4.965808 | |
0.75 34 5 5.215178 | |
0.75 35 5 5.486168 | |
0.75 36 5 5.768421 | |
0.75 37 5 5.867334 | |
0.75 38 5 6.194930 | |
0.75 39 5 6.524273 | |
0.75 40 5 6.944672 | |
0.75 1 10 1.055556 | |
0.75 2 10 0.711268 | |
0.75 3 10 0.789352 | |
0.75 4 10 0.776333 | |
0.75 5 10 1.033937 | |
0.75 6 10 1.305660 | |
0.75 7 10 1.434132 | |
0.75 8 10 1.303419 | |
0.75 9 10 1.567629 | |
0.75 10 10 1.881818 | |
0.75 11 10 2.014112 | |
0.75 12 10 2.405635 | |
0.75 13 10 2.603104 | |
0.75 14 10 2.741958 | |
0.75 15 10 2.986879 | |
0.75 16 10 2.344939 | |
0.75 17 10 2.832299 | |
0.75 18 10 2.971747 | |
0.75 19 10 3.121076 | |
0.75 20 10 3.693670 | |
0.75 21 10 3.826754 | |
0.75 22 10 4.061846 | |
0.75 23 10 4.525339 | |
0.75 24 10 4.913280 | |
0.75 25 10 5.205672 | |
0.75 26 10 5.474229 | |
0.75 27 10 5.682682 | |
0.75 28 10 5.819804 | |
0.75 29 10 6.252477 | |
0.75 30 10 6.487270 | |
0.75 31 10 6.681728 | |
0.75 32 10 4.571510 | |
0.75 33 10 4.837336 | |
0.75 34 10 5.078223 | |
0.75 35 10 5.461902 | |
0.75 36 10 5.940086 | |
0.75 37 10 6.252363 | |
0.75 38 10 6.603040 | |
0.75 39 10 6.912231 | |
0.75 40 10 7.318323 | |
0.75 1 20 1.090909 | |
0.75 2 20 0.477876 | |
0.75 3 20 0.744035 | |
0.75 4 20 0.771753 | |
0.75 5 20 1.033155 | |
0.75 6 20 1.225306 | |
0.75 7 20 1.683956 | |
0.75 8 20 1.337605 | |
0.75 9 20 1.627622 | |
0.75 10 20 2.114197 | |
0.75 11 20 2.106476 | |
0.75 12 20 2.544220 | |
0.75 13 20 3.010356 | |
0.75 14 20 2.890791 | |
0.75 15 20 2.977393 | |
0.75 16 20 2.596344 | |
0.75 17 20 2.752205 | |
0.75 18 20 2.984405 | |
0.75 19 20 3.397910 | |
0.75 20 20 3.804277 | |
0.75 21 20 3.841895 | |
0.75 22 20 4.360931 | |
0.75 23 20 4.640671 | |
0.75 24 20 4.911469 | |
0.75 25 20 5.530920 | |
0.75 26 20 5.849605 | |
0.75 27 20 6.201008 | |
0.75 28 20 6.566386 | |
0.75 29 20 6.842311 | |
0.75 30 20 7.095940 | |
0.75 31 20 7.184662 | |
0.75 32 20 4.570738 | |
0.75 33 20 4.892294 | |
0.75 34 20 5.184086 | |
0.75 35 20 5.545549 | |
0.75 36 20 5.988142 | |
0.75 37 20 6.387749 | |
0.75 38 20 6.629179 | |
0.75 39 20 6.998917 | |
0.75 40 20 7.499544 | |
1.00 1 2 0.801527 | |
1.00 2 2 0.917722 | |
1.00 3 2 0.985294 | |
1.00 4 2 0.967695 | |
1.00 5 2 1.228717 | |
1.00 6 2 1.460840 | |
1.00 7 2 1.357983 | |
1.00 8 2 1.535519 | |
1.00 9 2 1.756847 | |
1.00 10 2 1.996778 | |
1.00 11 2 2.129169 | |
1.00 12 2 2.446420 | |
1.00 13 2 2.531103 | |
1.00 14 2 2.749891 | |
1.00 15 2 2.811392 | |
1.00 16 2 2.653605 | |
1.00 17 2 2.924233 | |
1.00 18 2 3.229664 | |
1.00 19 2 3.333242 | |
1.00 20 2 3.511730 | |
1.00 21 2 3.608341 | |
1.00 22 2 3.884774 | |
1.00 23 2 3.979765 | |
1.00 24 2 4.410953 | |
1.00 25 2 4.614216 | |
1.00 26 2 4.839812 | |
1.00 27 2 4.833362 | |
1.00 28 2 5.209396 | |
1.00 29 2 5.323562 | |
1.00 30 2 5.401223 | |
1.00 31 2 5.500838 | |
1.00 32 2 5.097064 | |
1.00 33 2 5.278884 | |
1.00 34 2 5.460411 | |
1.00 35 2 5.275873 | |
1.00 36 2 5.619079 | |
1.00 37 2 5.809000 | |
1.00 38 2 6.000622 | |
1.00 39 2 6.161194 | |
1.00 40 2 7.033415 | |
1.00 1 5 1.292135 | |
1.00 2 5 0.600000 | |
1.00 3 5 0.886010 | |
1.00 4 5 0.856672 | |
1.00 5 5 1.064972 | |
1.00 6 5 1.272414 | |
1.00 7 5 1.433460 | |
1.00 8 5 1.428295 | |
1.00 9 5 1.628022 | |
1.00 10 5 1.845672 | |
1.00 11 5 2.034318 | |
1.00 12 5 2.339090 | |
1.00 13 5 2.390553 | |
1.00 14 5 2.668741 | |
1.00 15 5 2.911392 | |
1.00 16 5 2.391692 | |
1.00 17 5 2.710261 | |
1.00 18 5 2.875334 | |
1.00 19 5 3.184760 | |
1.00 20 5 3.488053 | |
1.00 21 5 3.679598 | |
1.00 22 5 4.026458 | |
1.00 23 5 4.199157 | |
1.00 24 5 4.488469 | |
1.00 25 5 4.915685 | |
1.00 26 5 5.034532 | |
1.00 27 5 5.188576 | |
1.00 28 5 5.286657 | |
1.00 29 5 5.566695 | |
1.00 30 5 5.901061 | |
1.00 31 5 5.719225 | |
1.00 32 5 4.652324 | |
1.00 33 5 5.031654 | |
1.00 34 5 5.292633 | |
1.00 35 5 5.326355 | |
1.00 36 5 5.662430 | |
1.00 37 5 5.886017 | |
1.00 38 5 6.179214 | |
1.00 39 5 6.272367 | |
1.00 40 5 6.837083 | |
1.00 1 10 0.788235 | |
1.00 2 10 0.621429 | |
1.00 3 10 0.776243 | |
1.00 4 10 0.806452 | |
1.00 5 10 1.044223 | |
1.00 6 10 1.251483 | |
1.00 7 10 1.406520 | |
1.00 8 10 1.394057 | |
1.00 9 10 1.569120 | |
1.00 10 10 1.844057 | |
1.00 11 10 1.948993 | |
1.00 12 10 2.345729 | |
1.00 13 10 2.515400 | |
1.00 14 10 2.847084 | |
1.00 15 10 2.956168 | |
1.00 16 10 2.474504 | |
1.00 17 10 2.929059 | |
1.00 18 10 2.935948 | |
1.00 19 10 2.977487 | |
1.00 20 10 3.401753 | |
1.00 21 10 3.891874 | |
1.00 22 10 4.186199 | |
1.00 23 10 4.339017 | |
1.00 24 10 4.863859 | |
1.00 25 10 4.885187 | |
1.00 26 10 5.187032 | |
1.00 27 10 5.573361 | |
1.00 28 10 5.572383 | |
1.00 29 10 6.122430 | |
1.00 30 10 6.337053 | |
1.00 31 10 6.374529 | |
1.00 32 10 4.688931 | |
1.00 33 10 4.871899 | |
1.00 34 10 5.228466 | |
1.00 35 10 5.565732 | |
1.00 36 10 5.843917 | |
1.00 37 10 6.119301 | |
1.00 38 10 6.359681 | |
1.00 39 10 6.488142 | |
1.00 40 10 6.903079 | |
1.00 1 20 0.916667 | |
1.00 2 20 0.536765 | |
1.00 3 20 0.746556 | |
1.00 4 20 0.788368 | |
1.00 5 20 1.027894 | |
1.00 6 20 1.242932 | |
1.00 7 20 1.465137 | |
1.00 8 20 1.195720 | |
1.00 9 20 1.624268 | |
1.00 10 20 1.869690 | |
1.00 11 20 2.464865 | |
1.00 12 20 2.268240 | |
1.00 13 20 2.743706 | |
1.00 14 20 3.003367 | |
1.00 15 20 3.221248 | |
1.00 16 20 2.567977 | |
1.00 17 20 2.817097 | |
1.00 18 20 3.069472 | |
1.00 19 20 3.420208 | |
1.00 20 20 3.712713 | |
1.00 21 20 3.866642 | |
1.00 22 20 4.234468 | |
1.00 23 20 4.288107 | |
1.00 24 20 5.013800 | |
1.00 25 20 5.343805 | |
1.00 26 20 5.553578 | |
1.00 27 20 5.649373 | |
1.00 28 20 6.047210 | |
1.00 29 20 6.837572 | |
1.00 30 20 6.819217 | |
1.00 31 20 7.088442 | |
1.00 32 20 4.601062 | |
1.00 33 20 4.880968 | |
1.00 34 20 5.242559 | |
1.00 35 20 5.659447 | |
1.00 36 20 6.123919 | |
1.00 37 20 6.458476 | |
1.00 38 20 6.820244 | |
1.00 39 20 7.039203 | |
1.00 40 20 7.520757 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <chrono> | |
#include <functional> | |
#include <symengine/basic.h> | |
#include <symengine/polys/uintpoly.h> | |
#include <symengine/polys/uintpoly_piranha.h> | |
#include <symengine/dict.h> | |
#include <random> | |
#include <algorithm> | |
#include <ctime> | |
using SymEngine::Basic; | |
using SymEngine::Add; | |
using SymEngine::Mul; | |
using SymEngine::Pow; | |
using SymEngine::Symbol; | |
using SymEngine::symbol; | |
using SymEngine::RCP; | |
using SymEngine::UIntPoly; | |
using SymEngine::UIntDict; | |
using SymEngine::map_uint_mpz; | |
using SymEngine::eq; | |
namespace SymEngine | |
{ | |
RCP<const UIntPoly> pow_upoly_ebs(const UIntPoly &a, unsigned int p) | |
{ | |
auto tmp = a.get_poly(); | |
UIntDict res(1); | |
while (p > 1) { | |
if (p % 2 == 0) { | |
tmp = tmp * tmp; | |
p = p / 2; | |
} else { | |
res = res * tmp; | |
tmp = tmp * tmp; | |
p = (p - 1) / 2; | |
} | |
} | |
return make_rcp<const UIntPoly>(a.get_var(), std::move(res * tmp)); | |
} | |
RCP<const UIntPoly> pow_upoly_naive(const UIntPoly &a, unsigned int p) | |
{ | |
auto tmp = a.get_poly(); | |
UIntDict res(1); | |
for (unsigned int i = 0; i < p; ++i) | |
res *= tmp; | |
return make_rcp<const UIntPoly>(a.get_var(), std::move(res)); | |
} | |
} | |
using SymEngine::pow_upoly_ebs; | |
using SymEngine::pow_upoly_naive; | |
void benchmark_multiplication(double sparseness, int pow, int poly_len) | |
{ | |
long long t1 = 0, t2 = 0; | |
int iterations = (60/poly_len); | |
for (int i = 0; i < iterations; ++i) { | |
int deg = ((double)(poly_len - 1)) / sparseness + 1; | |
int max_coeff = (1 << 10) - 1; | |
int min_coeff = 0; | |
int diff = max_coeff - min_coeff; | |
srand(time(NULL)); | |
std::vector<int> nums(deg - 1); | |
for (unsigned int i = 0; i < nums.size(); ++i) | |
nums[i] = i; | |
std::shuffle(nums.begin(), nums.end(), std::default_random_engine(time(0))); | |
map_uint_mpz a_dict; | |
for (int i = 0; i < poly_len - 1; ++i) | |
a_dict[nums[i]] = ((rand() % 2 == 0) ? 1 : -1) * ((rand() % diff) + min_coeff); | |
a_dict[deg] = ((rand() % 2 == 0) ? 1 : -1) * ((rand() % diff) + min_coeff); | |
RCP<const Symbol> x = symbol("x"); | |
RCP<const UIntPoly> a = UIntPoly::from_dict(x, std::move(a_dict)); | |
auto ts = std::chrono::high_resolution_clock::now(); | |
RCP<const UIntPoly> c = pow_upoly_ebs(*a, pow); | |
auto te = std::chrono::high_resolution_clock::now(); | |
t1 += std::chrono::duration_cast<std::chrono::microseconds>(te - ts).count(); | |
ts = std::chrono::high_resolution_clock::now(); | |
RCP<const UIntPoly> d = pow_upoly_naive(*a, pow); | |
te = std::chrono::high_resolution_clock::now(); | |
t2 += std::chrono::duration_cast<std::chrono::microseconds>(te - ts).count(); | |
} | |
float ratio = ((float)t2) / ((float)t1); | |
printf("%.2f %d %d %.6f\n", sparseness, pow, poly_len, ratio); | |
return; | |
}; | |
int main(int argc, char *argv[]) | |
{ | |
double sparsities[4] = {0.25, 0.5, 0.75, 1}; | |
std::vector<int> pow; | |
for (int i = 1; i < 41; ++i) | |
pow.push_back(i); | |
int lens[4] = {2, 5, 10, 20}; | |
for (int i = 0; i < 4; ++i) | |
{ | |
auto ts = std::chrono::high_resolution_clock::now(); | |
for (int k = 0; k < 4; ++k) | |
for (int j = 0; j < pow.size(); ++j) | |
benchmark_multiplication(sparsities[i], pow[j], lens[k]); | |
auto te = std::chrono::high_resolution_clock::now(); | |
std::cout<<"TIME :"<<std::chrono::duration_cast<std::chrono::microseconds>(te - ts).count()<<std::endl; | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment