diff --git a/result/corei5-2410M_win32_gcc5.1.csv b/result/corei5-2410M_win32_gcc5.1.csv new file mode 100644 index 0000000..be88f05 --- /dev/null +++ b/result/corei5-2410M_win32_gcc5.1.csv @@ -0,0 +1,321 @@ +Type,Function,Digit,Time(ns) +u32toa_sequential,amartin,1,5.571992 +u32toa_sequential,amartin,2,5.571992 +u32toa_sequential,amartin,3,7.425601 +u32toa_sequential,amartin,4,7.425601 +u32toa_sequential,amartin,5,7.436767 +u32toa_sequential,amartin,6,7.380936 +u32toa_sequential,amartin,7,8.720894 +u32toa_sequential,amartin,8,8.698561 +u32toa_sequential,amartin,9,10.619168 +u32toa_sequential,amartin,10,11.378477 +u32toa_random,amartin,0,19.150234 +u32toa_sequential,branchlut,1,6.353635 +u32toa_sequential,branchlut,2,7.001281 +u32toa_sequential,branchlut,3,7.403268 +u32toa_sequential,branchlut,4,7.157609 +u32toa_sequential,branchlut,5,13.187421 +u32toa_sequential,branchlut,6,14.170057 +u32toa_sequential,branchlut,7,14.773038 +u32toa_sequential,branchlut,8,15.141526 +u32toa_sequential,branchlut,9,16.213493 +u32toa_sequential,branchlut,10,16.615480 +u32toa_random,branchlut,0,22.726806 +u32toa_sequential,branchlut2,1,6.308969 +u32toa_sequential,branchlut2,2,7.057113 +u32toa_sequential,branchlut2,3,6.308969 +u32toa_sequential,branchlut2,4,7.425601 +u32toa_sequential,branchlut2,5,7.782923 +u32toa_sequential,branchlut2,6,7.715925 +u32toa_sequential,branchlut2,7,10.273012 +u32toa_sequential,branchlut2,8,10.340010 +u32toa_sequential,branchlut2,9,12.997593 +u32toa_sequential,branchlut2,10,12.975261 +u32toa_random,branchlut2,0,22.024444 +u32toa_sequential,naive,1,6.565795 +u32toa_sequential,naive,2,9.547201 +u32toa_sequential,naive,3,13.198587 +u32toa_sequential,naive,4,16.526150 +u32toa_sequential,naive,5,20.646521 +u32toa_sequential,naive,6,24.554732 +u32toa_sequential,naive,7,28.306615 +u32toa_sequential,naive,8,32.549815 +u32toa_sequential,naive,9,36.413361 +u32toa_sequential,naive,10,40.511399 +u32toa_random,naive,0,37.412746 +u32toa_sequential,null,1,2.590586 +u32toa_sequential,null,2,2.590586 +u32toa_sequential,null,3,2.590586 +u32toa_sequential,null,4,2.590586 +u32toa_sequential,null,5,2.590586 +u32toa_sequential,null,6,2.590586 +u32toa_sequential,null,7,2.590586 +u32toa_sequential,null,8,2.590586 +u32toa_sequential,null,9,2.590586 +u32toa_sequential,null,10,2.590586 +u32toa_random,null,0,2.973590 +i32toa_sequential,amartin,1,6.867285 +i32toa_sequential,amartin,2,6.867285 +i32toa_sequential,amartin,3,8.732060 +i32toa_sequential,amartin,4,8.732060 +i32toa_sequential,amartin,5,9.804027 +i32toa_sequential,amartin,6,9.792860 +i32toa_sequential,amartin,7,11.880962 +i32toa_sequential,amartin,8,11.959126 +i32toa_sequential,amartin,9,14.114225 +i32toa_sequential,amartin,10,14.237055 +i32toa_random,amartin,0,24.999151 +i32toa_sequential,branchlut,1,8.687395 +i32toa_sequential,branchlut,2,9.491370 +i32toa_sequential,branchlut,3,9.826359 +i32toa_sequential,branchlut,4,9.759361 +i32toa_sequential,branchlut,5,16.593148 +i32toa_sequential,branchlut,6,17.307792 +i32toa_sequential,branchlut,7,17.620449 +i32toa_sequential,branchlut,8,17.921939 +i32toa_sequential,branchlut,9,19.273064 +i32toa_sequential,branchlut,10,18.871076 +i32toa_random,branchlut,0,29.012326 +i32toa_sequential,branchlut2,1,7.794090 +i32toa_sequential,branchlut2,2,8.542233 +i32toa_sequential,branchlut2,3,8.162578 +i32toa_sequential,branchlut2,4,8.910721 +i32toa_sequential,branchlut2,5,10.507505 +i32toa_sequential,branchlut2,6,10.440507 +i32toa_sequential,branchlut2,7,13.902065 +i32toa_sequential,branchlut2,8,14.114225 +i32toa_sequential,branchlut2,9,16.861139 +i32toa_sequential,branchlut2,10,16.995135 +i32toa_random,branchlut2,0,27.658968 +i32toa_sequential,naive,1,7.771757 +i32toa_sequential,naive,2,10.808995 +i32toa_sequential,naive,3,14.661375 +i32toa_sequential,naive,4,18.346259 +i32toa_sequential,naive,5,22.232138 +i32toa_sequential,naive,6,26.118016 +i32toa_sequential,naive,7,29.423246 +i32toa_sequential,naive,8,33.353790 +i32toa_sequential,naive,9,37.206170 +i32toa_sequential,naive,10,41.170212 +i32toa_random,naive,0,40.895521 +i32toa_sequential,null,1,2.590586 +i32toa_sequential,null,2,2.590586 +i32toa_sequential,null,3,2.590586 +i32toa_sequential,null,4,2.590586 +i32toa_sequential,null,5,2.590586 +i32toa_sequential,null,6,2.590586 +i32toa_sequential,null,7,2.590586 +i32toa_sequential,null,8,2.590586 +i32toa_sequential,null,9,2.590586 +i32toa_sequential,null,10,2.590586 +i32toa_random,null,0,2.785996 +u64toa_sequential,amartin,1,7.057113 +u64toa_sequential,amartin,2,7.157609 +u64toa_sequential,amartin,3,8.921888 +u64toa_sequential,amartin,4,8.910721 +u64toa_sequential,amartin,5,9.379707 +u64toa_sequential,amartin,6,9.145214 +u64toa_sequential,amartin,7,10.395841 +u64toa_sequential,amartin,8,11.210983 +u64toa_sequential,amartin,9,13.075758 +u64toa_sequential,amartin,10,13.042259 +u64toa_sequential,amartin,11,26.899659 +u64toa_sequential,amartin,12,28.764434 +u64toa_sequential,amartin,13,28.529941 +u64toa_sequential,amartin,14,30.216055 +u64toa_sequential,amartin,15,29.892232 +u64toa_sequential,amartin,16,32.884805 +u64toa_sequential,amartin,17,32.415819 +u64toa_sequential,amartin,18,35.620552 +u64toa_sequential,amartin,19,34.972906 +u64toa_sequential,amartin,20,59.371310 +u64toa_random,amartin,0,37.368081 +u64toa_sequential,branchlut,1,7.157609 +u64toa_sequential,branchlut,2,8.799058 +u64toa_sequential,branchlut,3,8.397071 +u64toa_sequential,branchlut,4,8.374738 +u64toa_sequential,branchlut,5,12.863598 +u64toa_sequential,branchlut,6,13.890899 +u64toa_sequential,branchlut,7,14.460381 +u64toa_sequential,branchlut,8,14.739539 +u64toa_sequential,branchlut,9,39.238439 +u64toa_sequential,branchlut,10,40.265740 +u64toa_sequential,branchlut,11,40.500233 +u64toa_sequential,branchlut,12,40.053580 +u64toa_sequential,branchlut,13,41.170212 +u64toa_sequential,branchlut,14,40.288073 +u64toa_sequential,branchlut,15,42.275678 +u64toa_sequential,branchlut,16,42.487838 +u64toa_sequential,branchlut,17,71.553762 +u64toa_sequential,branchlut,18,71.899918 +u64toa_sequential,branchlut,19,73.027716 +u64toa_sequential,branchlut,20,72.748558 +u64toa_random,branchlut,0,53.425246 +u64toa_sequential,branchlut2,1,5.237003 +u64toa_sequential,branchlut2,2,5.683656 +u64toa_sequential,branchlut2,3,7.023614 +u64toa_sequential,branchlut2,4,7.057113 +u64toa_sequential,branchlut2,5,8.274241 +u64toa_sequential,branchlut2,6,8.419403 +u64toa_sequential,branchlut2,7,11.009989 +u64toa_sequential,branchlut2,8,11.121652 +u64toa_sequential,branchlut2,9,28.239617 +u64toa_sequential,branchlut2,10,28.864930 +u64toa_sequential,branchlut2,11,29.445579 +u64toa_sequential,branchlut2,12,29.501411 +u64toa_sequential,branchlut2,13,31.634177 +u64toa_sequential,branchlut2,14,31.589512 +u64toa_sequential,branchlut2,15,33.554784 +u64toa_sequential,branchlut2,16,33.923272 +u64toa_sequential,branchlut2,17,69.476827 +u64toa_sequential,branchlut2,18,68.561189 +u64toa_sequential,branchlut2,19,70.593459 +u64toa_sequential,branchlut2,20,70.894949 +u64toa_random,branchlut2,0,49.131796 +u64toa_sequential,naive,1,21.003843 +u64toa_sequential,naive,2,38.188805 +u64toa_sequential,naive,3,54.614458 +u64toa_sequential,naive,4,71.620760 +u64toa_sequential,naive,5,88.571229 +u64toa_sequential,naive,6,105.108546 +u64toa_sequential,naive,7,121.679361 +u64toa_sequential,naive,8,138.964820 +u64toa_sequential,naive,9,156.808595 +u64toa_sequential,naive,10,176.115158 +u64toa_sequential,naive,11,194.785240 +u64toa_sequential,naive,12,230.372294 +u64toa_sequential,naive,13,260.465519 +u64toa_sequential,naive,14,284.618264 +u64toa_sequential,naive,15,312.489392 +u64toa_sequential,naive,16,338.741404 +u64toa_sequential,naive,17,368.220482 +u64toa_sequential,naive,18,395.075475 +u64toa_sequential,naive,19,421.762974 +u64toa_sequential,naive,20,449.689934 +u64toa_random,naive,0,217.247963 +u64toa_sequential,null,1,2.411925 +u64toa_sequential,null,2,2.501255 +u64toa_sequential,null,3,2.423091 +u64toa_sequential,null,4,2.411925 +u64toa_sequential,null,5,2.411925 +u64toa_sequential,null,6,2.411925 +u64toa_sequential,null,7,2.411925 +u64toa_sequential,null,8,2.411925 +u64toa_sequential,null,9,2.411925 +u64toa_sequential,null,10,2.411925 +u64toa_sequential,null,11,2.590586 +u64toa_sequential,null,12,2.411925 +u64toa_sequential,null,13,2.411925 +u64toa_sequential,null,14,2.411925 +u64toa_sequential,null,15,2.411925 +u64toa_sequential,null,16,2.411925 +u64toa_sequential,null,17,2.411925 +u64toa_sequential,null,18,2.411925 +u64toa_sequential,null,19,2.411925 +u64toa_sequential,null,20,2.411925 +u64toa_random,null,0,2.768130 +i64toa_sequential,amartin,1,11.143985 +i64toa_sequential,amartin,2,11.322646 +i64toa_sequential,amartin,3,12.640271 +i64toa_sequential,amartin,4,12.562107 +i64toa_sequential,amartin,5,14.125391 +i64toa_sequential,amartin,6,14.024895 +i64toa_sequential,amartin,7,15.867337 +i64toa_sequential,amartin,8,15.744508 +i64toa_sequential,amartin,9,17.732112 +i64toa_sequential,amartin,10,17.676280 +i64toa_sequential,amartin,11,31.623011 +i64toa_sequential,amartin,12,33.208628 +i64toa_sequential,amartin,13,33.856274 +i64toa_sequential,amartin,14,35.453058 +i64toa_sequential,amartin,15,35.173900 +i64toa_sequential,amartin,16,38.121808 +i64toa_sequential,amartin,17,37.753319 +i64toa_sequential,amartin,18,40.600730 +i64toa_sequential,amartin,19,40.511399 +i64toa_sequential,amartin,20,63.045028 +i64toa_random,amartin,0,40.960285 +i64toa_sequential,branchlut,1,12.629105 +i64toa_sequential,branchlut,2,13.879733 +i64toa_sequential,branchlut,3,13.678739 +i64toa_sequential,branchlut,4,13.890899 +i64toa_sequential,branchlut,5,18.871076 +i64toa_sequential,branchlut,6,19.898378 +i64toa_sequential,branchlut,7,20.456693 +i64toa_sequential,branchlut,8,20.635355 +i64toa_sequential,branchlut,9,44.520107 +i64toa_sequential,branchlut,10,45.703737 +i64toa_sequential,branchlut,11,45.960562 +i64toa_sequential,branchlut,12,45.915897 +i64toa_sequential,branchlut,13,46.518878 +i64toa_sequential,branchlut,14,46.463047 +i64toa_sequential,branchlut,15,47.557346 +i64toa_sequential,branchlut,16,48.059830 +i64toa_sequential,branchlut,17,72.112078 +i64toa_sequential,branchlut,18,72.022747 +i64toa_sequential,branchlut,19,73.351539 +i64toa_sequential,branchlut,20,74.579834 +i64toa_random,branchlut,0,56.707585 +i64toa_sequential,branchlut2,1,10.775496 +i64toa_sequential,branchlut2,2,10.875993 +i64toa_sequential,branchlut2,3,11.836296 +i64toa_sequential,branchlut2,4,11.780465 +i64toa_sequential,branchlut2,5,13.332583 +i64toa_sequential,branchlut2,6,13.332583 +i64toa_sequential,branchlut2,7,15.722175 +i64toa_sequential,branchlut2,8,15.912002 +i64toa_sequential,branchlut2,9,32.002666 +i64toa_sequential,branchlut2,10,32.460485 +i64toa_sequential,branchlut2,11,33.431954 +i64toa_sequential,branchlut2,12,34.168931 +i64toa_sequential,branchlut2,13,36.167702 +i64toa_sequential,branchlut2,14,36.223534 +i64toa_sequential,branchlut2,15,37.641656 +i64toa_sequential,branchlut2,16,38.423298 +i64toa_sequential,branchlut2,17,69.487993 +i64toa_sequential,branchlut2,18,69.432161 +i64toa_sequential,branchlut2,19,70.571126 +i64toa_sequential,branchlut2,20,71.866419 +i64toa_random,branchlut2,0,52.037831 +i64toa_sequential,naive,1,23.415768 +i64toa_sequential,naive,2,38.970448 +i64toa_sequential,naive,3,54.234804 +i64toa_sequential,naive,4,69.867648 +i64toa_sequential,naive,5,85.478160 +i64toa_sequential,naive,6,101.178002 +i64toa_sequential,naive,7,116.855511 +i64toa_sequential,naive,8,133.214166 +i64toa_sequential,naive,9,151.013276 +i64toa_sequential,naive,10,168.644891 +i64toa_sequential,naive,11,187.192145 +i64toa_sequential,naive,12,220.579434 +i64toa_sequential,naive,13,251.632962 +i64toa_sequential,naive,14,276.690178 +i64toa_sequential,naive,15,301.445904 +i64toa_sequential,naive,16,327.161933 +i64toa_sequential,naive,17,351.951158 +i64toa_sequential,naive,18,377.979843 +i64toa_sequential,naive,19,403.070559 +i64toa_sequential,naive,20,411.903116 +i64toa_random,naive,0,223.530133 +i64toa_sequential,null,1,5.292834 +i64toa_sequential,null,2,5.337500 +i64toa_sequential,null,3,5.270502 +i64toa_sequential,null,4,5.270502 +i64toa_sequential,null,5,5.270502 +i64toa_sequential,null,6,5.259335 +i64toa_sequential,null,7,5.259335 +i64toa_sequential,null,8,5.259335 +i64toa_sequential,null,9,5.270502 +i64toa_sequential,null,10,5.270502 +i64toa_sequential,null,11,5.270502 +i64toa_sequential,null,12,5.370999 +i64toa_sequential,null,13,5.270502 +i64toa_sequential,null,14,5.259335 +i64toa_sequential,null,15,5.270502 +i64toa_sequential,null,16,5.270502 +i64toa_sequential,null,17,5.259335 +i64toa_sequential,null,18,5.259335 +i64toa_sequential,null,19,5.270502 +i64toa_sequential,null,20,5.259335 +i64toa_random,null,0,2.767572 diff --git a/result/corei5-2410M_win64_gcc5.1.csv b/result/corei5-2410M_win64_gcc5.1.csv new file mode 100644 index 0000000..620cb03 --- /dev/null +++ b/result/corei5-2410M_win64_gcc5.1.csv @@ -0,0 +1,385 @@ +Type,Function,Digit,Time(ns) +u32toa_sequential,amartin,1,4.823849 +u32toa_sequential,amartin,2,5.192338 +u32toa_sequential,amartin,3,6.677458 +u32toa_sequential,amartin,4,6.677458 +u32toa_sequential,amartin,5,6.688624 +u32toa_sequential,amartin,6,6.677458 +u32toa_sequential,amartin,7,8.285407 +u32toa_sequential,amartin,8,8.218410 +u32toa_sequential,amartin,9,10.328844 +u32toa_sequential,amartin,10,10.407008 +u32toa_random,amartin,0,14.345368 +u32toa_sequential,branchlut,1,4.823849 +u32toa_sequential,branchlut,2,5.192338 +u32toa_sequential,branchlut,3,5.940481 +u32toa_sequential,branchlut,4,5.147672 +u32toa_sequential,branchlut,5,10.094351 +u32toa_sequential,branchlut,6,10.686166 +u32toa_sequential,branchlut,7,11.009989 +u32toa_sequential,branchlut,8,11.121652 +u32toa_sequential,branchlut,9,14.304053 +u32toa_sequential,branchlut,10,14.248221 +u32toa_random,branchlut,0,16.684711 +u32toa_sequential,branchlut2,1,5.940481 +u32toa_sequential,branchlut2,2,6.677458 +u32toa_sequential,branchlut2,3,5.571992 +u32toa_sequential,branchlut2,4,7.057113 +u32toa_sequential,branchlut2,5,6.364801 +u32toa_sequential,branchlut2,6,6.308969 +u32toa_sequential,branchlut2,7,8.129079 +u32toa_sequential,branchlut2,8,8.285407 +u32toa_sequential,branchlut2,9,10.909492 +u32toa_sequential,branchlut2,10,10.786663 +u32toa_random,branchlut2,0,16.236942 +u32toa_sequential,naive,1,4.946679 +u32toa_sequential,naive,2,7.481433 +u32toa_sequential,naive,3,10.507505 +u32toa_sequential,naive,4,13.801568 +u32toa_sequential,naive,5,17.229628 +u32toa_sequential,naive,6,20.948011 +u32toa_sequential,naive,7,24.677561 +u32toa_sequential,naive,8,28.295448 +u32toa_sequential,naive,9,31.846337 +u32toa_sequential,naive,10,35.486557 +u32toa_random,naive,0,30.719656 +u32toa_sequential,null,1,2.222097 +u32toa_sequential,null,2,2.222097 +u32toa_sequential,null,3,2.222097 +u32toa_sequential,null,4,2.222097 +u32toa_sequential,null,5,2.222097 +u32toa_sequential,null,6,2.222097 +u32toa_sequential,null,7,2.222097 +u32toa_sequential,null,8,2.222097 +u32toa_sequential,null,9,2.222097 +u32toa_sequential,null,10,2.222097 +u32toa_random,null,0,2.600635 +u32toa_sequential,sse2,1,4.455361 +u32toa_sequential,sse2,2,4.823849 +u32toa_sequential,sse2,3,5.571992 +u32toa_sequential,sse2,4,5.304001 +u32toa_sequential,sse2,5,10.395841 +u32toa_sequential,sse2,6,11.099319 +u32toa_sequential,sse2,7,11.300313 +u32toa_sequential,sse2,8,11.378477 +u32toa_sequential,sse2,9,9.201046 +u32toa_sequential,sse2,10,9.804027 +u32toa_random,sse2,0,15.782473 +i32toa_sequential,amartin,1,6.308969 +i32toa_sequential,amartin,2,6.677458 +i32toa_sequential,amartin,3,8.173744 +i32toa_sequential,amartin,4,8.173744 +i32toa_sequential,amartin,5,8.173744 +i32toa_sequential,amartin,6,8.173744 +i32toa_sequential,amartin,7,9.279210 +i32toa_sequential,amartin,8,9.279210 +i32toa_sequential,amartin,9,11.132818 +i32toa_sequential,amartin,10,11.166317 +i32toa_random,amartin,0,18.093901 +i32toa_sequential,branchlut,1,5.940481 +i32toa_sequential,branchlut,2,6.308969 +i32toa_sequential,branchlut,3,7.057113 +i32toa_sequential,branchlut,4,5.929315 +i32toa_sequential,branchlut,5,11.021155 +i32toa_sequential,branchlut,6,11.679968 +i32toa_sequential,branchlut,7,12.003791 +i32toa_sequential,branchlut,8,12.115454 +i32toa_sequential,branchlut,9,15.275522 +i32toa_sequential,branchlut,10,15.309021 +i32toa_random,branchlut,0,20.451110 +i32toa_sequential,branchlut2,1,7.425601 +i32toa_sequential,branchlut2,2,8.173744 +i32toa_sequential,branchlut2,3,7.057113 +i32toa_sequential,branchlut2,4,8.542233 +i32toa_sequential,branchlut2,5,7.168776 +i32toa_sequential,branchlut2,6,7.425601 +i32toa_sequential,branchlut2,7,8.877222 +i32toa_sequential,branchlut2,8,9.044717 +i32toa_sequential,branchlut2,9,11.579471 +i32toa_sequential,branchlut2,10,11.590637 +i32toa_random,branchlut2,0,20.015624 +i32toa_sequential,naive,1,5.784152 +i32toa_sequential,naive,2,8.631563 +i32toa_sequential,naive,3,11.356145 +i32toa_sequential,naive,4,14.862368 +i32toa_sequential,naive,5,18.792912 +i32toa_sequential,naive,6,22.377300 +i32toa_sequential,naive,7,26.274345 +i32toa_sequential,naive,8,29.992728 +i32toa_sequential,naive,9,33.655281 +i32toa_sequential,naive,10,37.496494 +i32toa_random,naive,0,34.005903 +i32toa_sequential,null,1,2.222097 +i32toa_sequential,null,2,2.222097 +i32toa_sequential,null,3,2.222097 +i32toa_sequential,null,4,2.222097 +i32toa_sequential,null,5,2.222097 +i32toa_sequential,null,6,2.222097 +i32toa_sequential,null,7,2.222097 +i32toa_sequential,null,8,2.222097 +i32toa_sequential,null,9,2.222097 +i32toa_sequential,null,10,2.222097 +i32toa_random,null,0,2.600635 +i32toa_sequential,sse2,1,5.237003 +i32toa_sequential,sse2,2,5.828818 +i32toa_sequential,sse2,3,6.308969 +i32toa_sequential,sse2,4,6.018645 +i32toa_sequential,sse2,5,11.166317 +i32toa_sequential,sse2,6,12.059623 +i32toa_sequential,sse2,7,12.204785 +i32toa_sequential,sse2,8,12.271783 +i32toa_sequential,sse2,9,9.625366 +i32toa_sequential,sse2,10,10.228347 +i32toa_random,sse2,0,19.357928 +u64toa_sequential,amartin,1,6.677458 +u64toa_sequential,amartin,2,7.057113 +u64toa_sequential,amartin,3,8.542233 +u64toa_sequential,amartin,4,8.542233 +u64toa_sequential,amartin,5,8.542233 +u64toa_sequential,amartin,6,8.542233 +u64toa_sequential,amartin,7,9.658865 +u64toa_sequential,amartin,8,9.658865 +u64toa_sequential,amartin,9,11.601804 +u64toa_sequential,amartin,10,12.003791 +u64toa_sequential,amartin,11,17.720946 +u64toa_sequential,amartin,12,18.926908 +u64toa_sequential,amartin,13,19.027405 +u64toa_sequential,amartin,14,20.579523 +u64toa_sequential,amartin,15,20.601856 +u64toa_sequential,amartin,16,23.248273 +u64toa_sequential,amartin,17,22.846285 +u64toa_sequential,amartin,18,25.358707 +u64toa_sequential,amartin,19,25.347540 +u64toa_sequential,amartin,20,31.645343 +u64toa_random,amartin,0,25.628932 +u64toa_sequential,branchlut,1,4.980178 +u64toa_sequential,branchlut,2,6.029811 +u64toa_sequential,branchlut,3,6.364801 +u64toa_sequential,branchlut,4,6.208472 +u64toa_sequential,branchlut,5,10.641500 +u64toa_sequential,branchlut,6,11.512473 +u64toa_sequential,branchlut,7,12.026124 +u64toa_sequential,branchlut,8,12.070789 +u64toa_sequential,branchlut,9,20.255700 +u64toa_sequential,branchlut,10,22.812786 +u64toa_sequential,branchlut,11,23.415768 +u64toa_sequential,branchlut,12,23.605595 +u64toa_sequential,branchlut,13,24.007582 +u64toa_sequential,branchlut,14,24.041081 +u64toa_sequential,branchlut,15,24.420736 +u64toa_sequential,branchlut,16,24.320239 +u64toa_sequential,branchlut,17,25.649031 +u64toa_sequential,branchlut,18,25.838858 +u64toa_sequential,branchlut,19,26.598168 +u64toa_sequential,branchlut,20,27.134151 +u64toa_random,branchlut,0,28.327272 +u64toa_sequential,branchlut2,1,5.940481 +u64toa_sequential,branchlut2,2,6.677458 +u64toa_sequential,branchlut2,3,5.940481 +u64toa_sequential,branchlut2,4,7.794090 +u64toa_sequential,branchlut2,5,6.431799 +u64toa_sequential,branchlut2,6,6.677458 +u64toa_sequential,branchlut2,7,8.240742 +u64toa_sequential,branchlut2,8,8.486401 +u64toa_sequential,branchlut2,9,11.143985 +u64toa_sequential,branchlut2,10,11.032322 +u64toa_sequential,branchlut2,11,13.220920 +u64toa_sequential,branchlut2,12,13.232086 +u64toa_sequential,branchlut2,13,14.974032 +u64toa_sequential,branchlut2,14,14.962865 +u64toa_sequential,branchlut2,15,15.878503 +u64toa_sequential,branchlut2,16,16.045998 +u64toa_sequential,branchlut2,17,19.652719 +u64toa_sequential,branchlut2,18,19.474058 +u64toa_sequential,branchlut2,19,20.211034 +u64toa_sequential,branchlut2,20,20.289199 +u64toa_random,branchlut2,0,24.444744 +u64toa_sequential,naive,1,4.455361 +u64toa_sequential,naive,2,7.347437 +u64toa_sequential,naive,3,10.038519 +u64toa_sequential,naive,4,13.042259 +u64toa_sequential,naive,5,16.291657 +u64toa_sequential,naive,6,19.507556 +u64toa_sequential,naive,7,23.024946 +u64toa_sequential,naive,8,26.319010 +u64toa_sequential,naive,9,29.702404 +u64toa_sequential,naive,10,32.962969 +u64toa_sequential,naive,11,36.491525 +u64toa_sequential,naive,12,39.137942 +u64toa_sequential,naive,13,44.017623 +u64toa_sequential,naive,14,47.557346 +u64toa_sequential,naive,15,51.085902 +u64toa_sequential,naive,16,54.703789 +u64toa_sequential,naive,17,58.366341 +u64toa_sequential,naive,18,62.397382 +u64toa_sequential,naive,19,66.294426 +u64toa_sequential,naive,20,68.929677 +u64toa_random,naive,0,51.383484 +u64toa_sequential,null,1,2.222097 +u64toa_sequential,null,2,2.222097 +u64toa_sequential,null,3,2.222097 +u64toa_sequential,null,4,2.222097 +u64toa_sequential,null,5,2.222097 +u64toa_sequential,null,6,2.222097 +u64toa_sequential,null,7,2.222097 +u64toa_sequential,null,8,2.222097 +u64toa_sequential,null,9,2.222097 +u64toa_sequential,null,10,2.222097 +u64toa_sequential,null,11,2.222097 +u64toa_sequential,null,12,2.222097 +u64toa_sequential,null,13,2.222097 +u64toa_sequential,null,14,2.222097 +u64toa_sequential,null,15,2.222097 +u64toa_sequential,null,16,2.222097 +u64toa_sequential,null,17,2.222097 +u64toa_sequential,null,18,2.222097 +u64toa_sequential,null,19,2.222097 +u64toa_sequential,null,20,2.222097 +u64toa_random,null,0,2.229355 +u64toa_sequential,sse2,1,5.192338 +u64toa_sequential,sse2,2,7.425601 +u64toa_sequential,sse2,3,7.794090 +u64toa_sequential,sse2,4,6.722123 +u64toa_sequential,sse2,5,10.764330 +u64toa_sequential,sse2,6,11.177484 +u64toa_sequential,sse2,7,12.026124 +u64toa_sequential,sse2,8,12.104288 +u64toa_sequential,sse2,9,16.905805 +u64toa_sequential,sse2,10,16.849973 +u64toa_sequential,sse2,11,16.905805 +u64toa_sequential,sse2,12,16.905805 +u64toa_sequential,sse2,13,16.950470 +u64toa_sequential,sse2,14,16.950470 +u64toa_sequential,sse2,15,16.950470 +u64toa_sequential,sse2,16,16.626647 +u64toa_sequential,sse2,17,14.918200 +u64toa_sequential,sse2,18,15.152693 +u64toa_sequential,sse2,19,16.760642 +u64toa_sequential,sse2,20,17.352457 +u64toa_random,sse2,0,28.736518 +i64toa_sequential,amartin,1,8.173744 +i64toa_sequential,amartin,2,8.542233 +i64toa_sequential,amartin,3,10.027353 +i64toa_sequential,amartin,4,10.027353 +i64toa_sequential,amartin,5,10.027353 +i64toa_sequential,amartin,6,10.027353 +i64toa_sequential,amartin,7,11.143985 +i64toa_sequential,amartin,8,11.322646 +i64toa_sequential,amartin,9,12.796600 +i64toa_sequential,amartin,10,12.651438 +i64toa_sequential,amartin,11,18.402091 +i64toa_sequential,amartin,12,19.831380 +i64toa_sequential,amartin,13,19.663885 +i64toa_sequential,amartin,14,21.439329 +i64toa_sequential,amartin,15,21.483995 +i64toa_sequential,amartin,16,24.186243 +i64toa_sequential,amartin,17,24.029915 +i64toa_sequential,amartin,18,26.408341 +i64toa_sequential,amartin,19,26.776829 +i64toa_sequential,amartin,20,33.096965 +i64toa_random,amartin,0,29.249052 +i64toa_sequential,branchlut,1,5.929315 +i64toa_sequential,branchlut,2,6.900784 +i64toa_sequential,branchlut,3,7.246940 +i64toa_sequential,branchlut,4,7.258106 +i64toa_sequential,branchlut,5,11.992625 +i64toa_sequential,branchlut,6,12.796600 +i64toa_sequential,branchlut,7,13.254419 +i64toa_sequential,branchlut,8,13.522410 +i64toa_sequential,branchlut,9,22.220972 +i64toa_sequential,branchlut,10,24.956719 +i64toa_sequential,branchlut,11,25.637865 +i64toa_sequential,branchlut,12,25.727195 +i64toa_sequential,branchlut,13,26.374842 +i64toa_sequential,branchlut,14,26.352509 +i64toa_sequential,branchlut,15,26.553503 +i64toa_sequential,branchlut,16,26.665166 +i64toa_sequential,branchlut,17,27.949292 +i64toa_sequential,branchlut,18,27.971625 +i64toa_sequential,branchlut,19,28.864930 +i64toa_sequential,branchlut,20,28.876097 +i64toa_random,branchlut,0,32.188585 +i64toa_sequential,branchlut2,1,7.425601 +i64toa_sequential,branchlut2,2,8.173744 +i64toa_sequential,branchlut2,3,7.425601 +i64toa_sequential,branchlut2,4,9.279210 +i64toa_sequential,branchlut2,5,7.280439 +i64toa_sequential,branchlut2,6,8.173744 +i64toa_sequential,branchlut2,7,9.078216 +i64toa_sequential,branchlut2,8,9.335041 +i64toa_sequential,branchlut2,9,11.880962 +i64toa_sequential,branchlut2,10,11.769299 +i64toa_sequential,branchlut2,11,14.158890 +i64toa_sequential,branchlut2,12,14.181223 +i64toa_sequential,branchlut2,13,16.034832 +i64toa_sequential,branchlut2,14,16.034832 +i64toa_sequential,branchlut2,15,16.771809 +i64toa_sequential,branchlut2,16,16.872306 +i64toa_sequential,branchlut2,17,20.680020 +i64toa_sequential,branchlut2,18,20.590689 +i64toa_sequential,branchlut2,19,21.227169 +i64toa_sequential,branchlut2,20,21.160171 +i64toa_random,branchlut2,0,28.293215 +i64toa_sequential,naive,1,5.382165 +i64toa_sequential,naive,2,8.296574 +i64toa_sequential,naive,3,10.965324 +i64toa_sequential,naive,4,14.080726 +i64toa_sequential,naive,5,17.553451 +i64toa_sequential,naive,6,21.037342 +i64toa_sequential,naive,7,23.594429 +i64toa_sequential,naive,8,27.859962 +i64toa_sequential,naive,9,31.343853 +i64toa_sequential,naive,10,35.129234 +i64toa_sequential,naive,11,38.713622 +i64toa_sequential,naive,12,42.275678 +i64toa_sequential,naive,13,45.145421 +i64toa_sequential,naive,14,49.600782 +i64toa_sequential,naive,15,53.084673 +i64toa_sequential,naive,16,56.144244 +i64toa_sequential,naive,17,60.085954 +i64toa_sequential,naive,18,63.904834 +i64toa_sequential,naive,19,67.600885 +i64toa_sequential,naive,20,67.600885 +i64toa_random,naive,0,53.827791 +i64toa_sequential,null,1,2.222097 +i64toa_sequential,null,2,2.222097 +i64toa_sequential,null,3,2.222097 +i64toa_sequential,null,4,2.222097 +i64toa_sequential,null,5,2.222097 +i64toa_sequential,null,6,2.222097 +i64toa_sequential,null,7,2.222097 +i64toa_sequential,null,8,2.222097 +i64toa_sequential,null,9,2.222097 +i64toa_sequential,null,10,2.222097 +i64toa_sequential,null,11,2.222097 +i64toa_sequential,null,12,2.222097 +i64toa_sequential,null,13,2.222097 +i64toa_sequential,null,14,2.222097 +i64toa_sequential,null,15,2.222097 +i64toa_sequential,null,16,2.222097 +i64toa_sequential,null,17,2.222097 +i64toa_sequential,null,18,2.222097 +i64toa_sequential,null,19,2.222097 +i64toa_sequential,null,20,2.222097 +i64toa_random,null,0,2.229355 +i64toa_sequential,sse2,1,5.616658 +i64toa_sequential,sse2,2,6.498797 +i64toa_sequential,sse2,3,6.867285 +i64toa_sequential,sse2,4,6.722123 +i64toa_sequential,sse2,5,11.210983 +i64toa_sequential,sse2,6,11.914461 +i64toa_sequential,sse2,7,12.115454 +i64toa_sequential,sse2,8,12.148953 +i64toa_sequential,sse2,9,17.196129 +i64toa_sequential,sse2,10,17.296626 +i64toa_sequential,sse2,11,17.196129 +i64toa_sequential,sse2,12,17.196129 +i64toa_sequential,sse2,13,17.196129 +i64toa_sequential,sse2,14,17.196129 +i64toa_sequential,sse2,15,17.196129 +i64toa_sequential,sse2,16,16.715977 +i64toa_sequential,sse2,17,15.085695 +i64toa_sequential,sse2,18,15.286688 +i64toa_sequential,sse2,19,16.827640 +i64toa_sequential,sse2,20,16.849973 +i64toa_random,sse2,0,30.614134 diff --git a/src/branchlut2.cpp b/src/branchlut2.cpp index 55fb163..80c5a0f 100644 --- a/src/branchlut2.cpp +++ b/src/branchlut2.cpp @@ -3,60 +3,67 @@ #include "test.h" -#define BEGIN2(n) \ - do { \ - int t = (n); \ - if(t < 10) *p++ = '0' + t; \ - else { \ - t *= 2; \ - *p++ = gDigitsLut[t]; \ - *p++ = gDigitsLut[t + 1]; \ - } \ - } while(0) -#define MIDDLE2(n) \ - do { \ - int t = (n) * 2; \ - *p++ = gDigitsLut[t]; \ - *p++ = gDigitsLut[t + 1]; \ - } while(0) -#define BEGIN4(n) \ - do { \ - int t4 = (n); \ - if(t4 < 100) BEGIN2(t4); \ - else { BEGIN2(t4 / 100); MIDDLE2(t4 % 100); } \ - } while(0) -#define MIDDLE4(n) \ - do { \ - int t4 = (n); \ - MIDDLE2(t4 / 100); MIDDLE2(t4 % 100); \ - } while(0) -#define BEGIN8(n) \ - do { \ - uint32_t t8 = (n); \ - if(t8 < 10000) BEGIN4(t8); \ - else { BEGIN4(t8 / 10000); MIDDLE4(t8 % 10000); } \ - } while(0) -#define MIDDLE8(n) \ - do { \ - uint32_t t8 = (n); \ - MIDDLE4(t8 / 10000); MIDDLE4(t8 % 10000); \ - } while(0) -#define MIDDLE16(n) \ - do { \ - uint64_t t16 = (n); \ - MIDDLE8(t16 / 100000000); MIDDLE8(t16 % 100000000); \ - } while(0) +namespace Impl { + +struct DigitPair { char data[2]; }; + +inline void toStringMiddle2(uint8_t x, char*& p) { + + *reinterpret_cast(p) = reinterpret_cast(gDigitsLut)[x], p += 2; + +} +inline void toStringBegin2(uint8_t x, char*& p) { + + if(x < 10) *p++ = '0' + x; + else toStringMiddle2(x, p); + +} +inline void toStringMiddle4(uint16_t x, char*& p) { + + uint8_t a = x / 100, b = x % 100; + toStringMiddle2(a, p); toStringMiddle2(b, p); + +} +inline void toStringBegin4(uint16_t x, char*& p) { + + if(x < 100) toStringBegin2(x, p); + else { uint8_t a = x / 100, b = x % 100; toStringBegin2(a, p), toStringMiddle2(b, p); } + +} +inline void toStringMiddle8(uint32_t x, char*& p) { + + uint16_t a = x / 10000, b = x % 10000; + toStringMiddle4(a, p), toStringMiddle4(b, p); + +} +inline void toStringBegin8(uint32_t x, char*& p) { + + if(x < 10000) toStringBegin4(x, p); + else { uint16_t a = x / 10000, b = x % 10000; toStringBegin4(a, p), toStringMiddle4(b, p); } + +} +inline void toStringMiddle16(uint64_t x, char*& p) { + + uint32_t a = x / 100000000, b = x % 100000000; + toStringMiddle8(a, p), toStringMiddle8(b, p); + +} + +} void u32toa_branchlut2(uint32_t x, char* p) { - if(x < 100000000) BEGIN8(x); - else { BEGIN2(x / 100000000); MIDDLE8(x % 100000000); } + if(x < 100000000) Impl::toStringBegin8(x, p); + else { + uint32_t a = x / 100000000, b = x % 100000000; + Impl::toStringBegin2(a, p), Impl::toStringMiddle8(b, p); + } *p = 0; } void i32toa_branchlut2(int32_t x, char* p) { - uint64_t t; + uint32_t t; if(x >= 0) t = x; else *p++ = '-', t = -uint32_t(x); u32toa_branchlut2(t, p); @@ -64,9 +71,14 @@ void i32toa_branchlut2(int32_t x, char* p) { } void u64toa_branchlut2(uint64_t x, char* p) { - if(x < 100000000) BEGIN8(x); - else if(x < 10000000000000000) { BEGIN8(x / 100000000); MIDDLE8(x % 100000000); } - else { BEGIN4(x / 10000000000000000); MIDDLE16(x % 10000000000000000); } + if(x < 100000000) Impl::toStringBegin8(x, p); + else if(x < 10000000000000000) { + uint32_t a = x / 100000000, b = x % 100000000; + Impl::toStringBegin8(a, p), Impl::toStringMiddle8(b, p); + } else { + uint64_t a = x / 10000000000000000, b = x % 10000000000000000; + Impl::toStringBegin4(a, p), Impl::toStringMiddle16(b, p); + } *p = 0; }