fastest round

Benchmark created by Timo on


Setup

var nums = [0,3021.04780,16632911222.538,16122865.3,-83367478217.9328,-2901084.4,-38034625968209.9,-168.835339,284355345357209.6,-23613805,-26204420911.923,-13684.134945751,1740365111492,-28.6994070,-37105282286.8787,-14510.62640,-2100632295047,161.017,-11844438972,-392451218.15,40357794288.76,6428.9461,408995162069401.6,22572921,176449621327.87,-15,-1297685541814.27,502155.773,-340228665927.2704,2.4131,26315052348866.5,47913,-2214797361,3821,-3195453470.408,-1.47618,-2514065901,-31,-3457707323.424,-164730.8575,-3519001850.28,3019.963380,-409186541030.6,136529.9702,44612908230.9017,-25.4039,40139641449.3491,-2143.9729,9387023982.919,1141.79209953280,2826408896.2,-18930.824,-335656031092736,95836.405392,-26251238068.71552,4.4299,-385226760624.5,-29,-16152220789.63,27.8498033375,-3748229137.03,488436372.8650,-41529997063,-44672.79,-4317985539.8830,-188197172.255,-180744014004.2240,-341080.20988313,-39067705608765.44,-1,19353195658.6,-2.2,2242749470.343,-1003.750,4168592648044.54,428.90427199,-30279703860.34,-3.11,-2977631247007.744,-4,647479104110.592,-815.84233,2997753474,-1.5969528064245,4178823939.6208,4.2097954,13688506417152.0,-3.14,-43777605375098.88,1185476.614553600,-2604821454520,2523.3819,-387425587586,176.03,-124942548992.0000,-2322,273311539920896,2,3657721136,-898433.25,-35671850038.06720,-4.43,385928510465,-2733.8931,-28005507058.8928,-2.092364,-26851257708.70,-2803.334,1265746327896064,-390789002.0614,250472444408.6,127781.6465,-70831336482.406,-1.7,3038834828.77132,-8.86901,-36802832787046,436.7114307,444828033954.6,3011,27292331723980.80,-2121.131,26674529031,431563.93720,-2613921831714816,1917619,1351874787672,-30,-186111007234,-3.1,28134498809.93,-816823.624794112,170901861144.9,-838534.827,1217405531455488,17.0233788,-3430986062.75,444159.4971,-20007701698.31,10126170.3,2934704898572.28,-6.5,-27670927219097,26505.8004,-11112860792.9139,-6084619.93,17802225128.57,709897.04593408,-3432033669873.664,-406627034.96232,-10106714078.576,3674011.9,18739622209,266542,-216084774912,-2369.2681,-789420282216.4,-72.874045997056,175424205855129,1.410,-419730911395.8400,116914.938865,103410381409.4,-1.91,-28881288261.79,-19531.369,1841764767891,1199,368657639984,-25.1986364,7155383260938.2,2.67,20943454821416.96,-3.96,-3379059098.64857,-479,-13888736953,-9,-296281820679,-84.199,26837580838.33856,40,-42526248072642.5,-3.61576890,-29820367342141.4,270.4890237288,-337937412443.34,344.82,-1902744117968,-48.030397,38299929747.12832,-2.710,3314798087.37,-287758.95720263,-30700215090,284102.0,13702322496471.0,8.93,16171875717.61,32.49584,29444206682439.68,-1.23,3426429756768256,-342.354,-415534431390.92,-2.5641941551,-14761039778283.52,-2.58,39827355887.206,-8727321.955532,-329598794255564.8,7.03944804270080,-126033596933.7,1594.34,33404281830768,33.14261,3116207242739.71,87,-1750347089444.864,23563.6845,-325895142034.63,-100.6011812937,-2834835492044,-202627.1,52812152255.283,19.326963223,413854943569.510,-3.454,23319367227.801,25658243.25877,18206249011.11,-41.9,2190495707.0376,1.405,238783405699891,-27458.3,-3636566710,-429.916183,375952129812.070,25799576,2657516936757.24,3.6336017531207,35590817343.0,-2.2265252,-31306879682478,-262692.5084278,132550062243,316035.861315584,-21914893041.008,-118,-21046859220,22561.89983,-163371565868646,-1893450123.3131,289651846178406.4,824.94283,-4366537490169.856,81.89,329733575698.022,23085.940662599,14478789585141.7,4.081,581077856944128,-2.0,39277691005.829,33282469.469,445005986529.280,-415474940.2218,-27001906496.79872,-25.4747191,3976965388238.8,139175,38933905633.4,-298.6891,3800691621.49,22411.3329596006,-22783866007715.8,2.039111,427115329617.92,23.99622,-1184615679131.64,-3,-58513376568.9,2.90232,-3099167035490304,3,-16912746796.8,793.97082942668,-68393401057.2800,-15368.9689948160,-4134613182,305.0021,252264182710.272,3.9,-3625418003316736,-76900.68479,-2327193300500.48,1,3032419586.2773,1115179,-1317155152855.0,-1578448,1673676177014.784,36753.331191808,-16276878985789,-7.7112,13288569632194,-3.9050304867532,407538525588.684,407760,-3732346696,99.1625,313532998483.9,23.90,-2434026216357.888,1.269,508515516940.2,69.061889228800,4079841775,-8.9,-38785963891097,-13262156.673,-4490833306.845184,-2.3774,-3814616895324.16,-9.512721,-11287762221137,29264.664,-36674098901811.2,-1566.012877045,2276389877186,427402732.97,-71594581531033,-97.3180,2644533313.5360,18761.8,-94854306594.8,29042294,3933994659872,35.2684,6588843142.6,3404.26716348,41892103868.9075,119.247502,2927149572,4.4,22751722455.6,-347121450.4837120,13150568474.21,33928.4510480793,-3896767917588,-214388679.7438976,-4189182410,-227906,-2157549264.568,3952081.02,-3342566346.98,412.4214,-12712790846,1269283.4,78057117319168,267.964,1985460263976,23379.3924,-2779797948203.0,26.14699128520,-56152390683.8,-5.3256196508,27401771013.8982,151.9,-21964159209.9,2.65214,36560032707.37920,44209.88,-3149459647102.9,25.03862829187,-29514161255874.5,-4.44924,3893927690108.928,207.986171,29268406666526,-28.204090492,11316555195.35,-277.97336411340,-30083086842.59328,-37.070009616302,-3652453639,147.8,42453835385,-4.154,-3581357380.861,-78.305789,273697425535.7,-1.17,2163499807,2192.66,19476417725.07136,422.53268423802,4159934384.0,3868110,2901840542826.4,-133190.280386,-2353187231.10,278251661.216,-26919293388062.72,-3252,1446923944853504,-23964.9757,-4404974301741.0,3.834,-2441595504.8202,2228,-928145716805,-38837.71,10569900380.651,4.04606789,-850307030450.17,-3230.4879045,-12751506788,22,426421417672,-41462.0158,1687013401034.75,4.20641,-281765321952.460,8.19961505251328,36218129193.3,235.138709035417,-38262865144053.7,-4.24,12167763103.580,44.50782170,9256142110,-248.74,38553778965708.8,-727894426.910,-1354893893828.6,445.04,9064988509.47,3.0816006569984,29128056153047,72.710448,160645500213,353.02,-435781607673036.8,3077.272445648896,-3589809213.80,3577.896174092288,152042703369,-3.7916,30861485869.6,-269,-2180794294,-18668956.49,-986213225857.02,-3.6,42582952839741,49320.5,-38078467434.086,-2088.64287,-397108004152.9,-133865335.1608,245908024118.476,43.732,2872516594.89280,2.3,-722818106916.86,-2775989.6166400,7315588435,24.56,-253518336229.3760,-339.606758857,13836260170.7929,21,-4313830800752.64,-36974297.905,254315129837,25508.7278974,-3754696426.651648,-403,39010006498017,-9.83017,31373483929.76384,-8032462,-448292864602.931,-72.26,3441847120.6912,-43772.86711181,37012225864,-3859.383414947,-191353135615.180,3291.0435460,1516153482510336,43230.57757,-144288394510,-4.05416,-54048330665.16,-14104.2,365870080799,-32655.91775,284902669733068.8,58.1787,12626194449.0,-7.0214155553,-206934118498.304,267.76243,-307586247163.904,3093.5957163,-288418716608.1024,-2039773799.6451,3742582077.1,249.4,-38394132850.2784,31130817.77422,-34165725719429.12,-83.138,-43367682329804.8,279.6,1421295921135,1.887409818,206528875751.0,9.7451,4317947342.3,-414.643,417216626635.57,-199.741,27173740127.1,256774.26,24248810733568.0,58194489.92,392194738146,-17566.13262180,-8429811835.86,3180,-7914125850050.5,-38.423,67124643810508,-3285.73,-24971527816.47872,1761.1,-35603773841.73,4.8,3648388742.51264,-1.2,232972949127.168,3080564,172509384356659,1.20841744,18512104285,2604.911,6561791182.11,3788.641692,18173028781,3090.031149,613329882054,-3019.3,16232099715481.6,-1.8,-4210376321,295653.0626330,41619808059.39,-26370515.3,-63113110382.182,150410,-16344627984.4,4438.69,-4020850713952,1.6835667,-4150104315.3,-1.23298,-51521305706.49,19081.7725,33187293623.7465,-20196959,14542085826.8057,-444,86911968346.112,-371876.68651540,-86327099916.288,316,-442170426890649.6,7171941.953699,9686127267020,-37244258.620,25710051805.1,42906.50056949760,3791278521.1,444.028519920435,14471492335.0,11814910.56,522208237584.38,3917.8984855,3907415787,-3064.068004,147627193034.3,1.9,18783938428.272,290100491.5834,-242966482386.94,408.745,17477628696985.60,-1770.18999773593,-435968374577.561,4,-12414119827210.24,12004.200,447634805148,10.3181303,443033008996.3,-58.73792492,-60841530281.1,-12.6977340,6863243695.8,-436,314728598260.9,-40725.14741338112,921249685438.464,-4.27340779,-287767129384,368222,6801072744.038,180836.4287819776,2349947861.07392,-3.9488153463,3606878047.174,334.00054517,-39003231942.08,-1.667057061,-3994598045122.5,36.5,2806574967,4319,4259271294.3206,3.54,-3054558527.88121,40.43,3263833430818816,-3.778051372,-4057252965.1,-20084943.16191744,325956394811.39,-813385.134374912,48034826577.510,22589,-19028345094144,-16.99584665,1832397129646.0,-32545.9895753,-3619178237.919,2867301.11208,16358871085.87,7,45477144612,-25.70,-2432793673.990144,4.3037949,-4212983290920.96,-249269.773454,-3557653011.759,56412.98404966,4008883441893376,-37.2859113,2336083152994.3,-1.985,-4228129325318.14,-58,-1179013808652.288,-17.780136539586,447836579692544,-563,2470632348.4508,-3843.534587,84748621840,-3.6297120436,-1519807195250,4.251,-3064887265722.3,-15.16867877339,1452768288047,-17578,4457957550.981120,3.352998256,-238978272644.3,-40848247.0481,-4888017596,1364849.900,-426734334980,5.72752,2312944272539.648,-18,14375575565107.2,-128396.93582,-3485221018140.6,-20.4,-214929048705.4336,-295717019.4776,-213262959168,141.40247008,-60645882776.7,2582.25,-669369268961280,9602,392772088705,-380.932,249202570218.70,-9671.6,-28290754375843.8,270.6018370846,-3948285765091.328,-20646.2646851993,3296742489456.64,24565329,-3404611943.6,11,3842784209403,20.80336460644,-23056555955,-25286.4129,120005125052.825,-3.48970268,-2394750141.333,-40879119.89379,-2842282109.69804,128,44721201469,-71,1489740138283.0,3.52843,284793078022.1,2.10261,42662496263.20896,-24988.986355220,3769450406.8,-342.09021338,13820473901056.00,-2.335488320995,-135016852383,-1.45315,39338370588.99,-3047.4480,-3629085418848,-29.0471,796848759504.896,-2830063.129067,160004825730.25,-3529556.74080051,34909873934.172,792,3892041020866.56,20357.209,-2665799420.47,3807356.94936,235118013920,-1.4,-42571653342,4236649.735,-1711844410523648,134629898,111732572605.6,1.03,11118916570.97216,-294.9022029447168,-3975131789.524992,3.5,38638806148.05504,240690458.00140,910710485811,-12,15752130199552.0,-2.1318132752,7024127130.99264,-1.1616146,-372433875474.841,27503.6,-4029198830.141,-1.390670195458048,23958404338.8,3793645,2447331362,-2.63555,325401885592.7808,-75.21499,216281501610,-134667886,-3114560965.836,199761436.71,20358254999633,24.60,41689225216.65,41.5444107,-609563652915,4126557,41485292955.2,-99.98,2890326259.79392,-294614823.49527,-40153539778.96,4194.54,-50363655572.684,-2576.4427,102786899378.1,-31232.0560,17138583685038.0,25134.3,2809819429.863,41708.754651054,-4005053115400192,3385.8,-40904329757.98,-14.8130100989132,-273165020299264,-326.268290,-31760944925245.44,-249564.060,161451440760.4,-3.71683980476416,-2411994317.586432,185.07,266961569185.792,-1097.5600516792,4167181843.56249,-1.092,632039820754944,21.3,-385195497540812,-38192.93787,-416446384649.01,21883464.24033,-423961645023.2,-1594613.697609,-392527593917644.8,304654575.4,951234580185,-83.480,-2635810071379.968,-373605983,393489063870.4,92.150,-42581823858.93376,-45900.5,344274568740,-38.692039,6998366890.229,1.3694,23861981987.4713,-185970.68,2755267825.500160,2457772.96,28217300326809,14,-3523396973,3.89,-3499413439,3783,2799940476600320,2.725,-3413017559564.28,-713982,34916329639.1,-1880744.6495,-14480551696.1382,406983911.5124,281654706411929.6,-68.4462480293888,-179963437672.03,-435272.97784872,324247666399.64,-12.96,24085161154,-138,126832994366,71.73,-2725502896.8,264.00,55233393511.62,-1.0,3839627949.506,3584.9,-46729346521.4976,3343.72,4028852644.872192,-16993,-32548855333,-26434.910499,30607451095.0,-2.6,57407481210,-3620.2,-4093357332627,-31743532.733562,1143626486775.80,-262.7,2604618563452,18.22263,5378751793.72,-410,4464149987.85228,-1.033277,216551898323.35,-9.79115,34174300302,-4.25614488,3210331727855616,330.12997,-29548535632363.5,-144356.94160,-19883407106.3,254.7934,-2632898083553.2,55243.28787,-346423240635.1,39678,-38962885296.1,748.27,-40855376735.76448,-123.34564617,2952965707005,-2980.5,38434129565.4502,-2459639.91233,38907322721.89,27647,-38684610506260,24688.38172,-19964463373.3529,170.0553042165,7976113552.75264,1.176354,415421427194265.6,3.67,134581752063,722.4,-3330866696.683,-2.5,2382267309.621248,115347.63064,-3579078514.8,-1.3332360892,-10331719571.865,-156,183890603094,3.1,-111815620663.705,3567053,385699089586.585,-3.710779,114324493094.092,-24.833,25906403617,103.16487,38118620345.13,16.058,4302847650.8241,24324378.83764,-21607436045516.8,1.64,4141363159.36768,1961.2,-35079777513635,193883903,-4150626766290.944,-1891006.75668,-66607109059.3792,21.9048712129,4440061567303.68,-21,302531334897.6,-3499.74272619,41563846229.3,2.2568,2601568029376.512,2.20045,-3639345235,12.5,3457935883632,-1818411390.7,14697953167.93,1036416800.78,-71300546140569.6,-4.303025199906,2822737844.240384,426.3,-1618482550538.240,-3870,32449269428387,16.9,3353315723182.0,-4.7023253985,-3631249683906.56,303403.8,-105863216260,-164770.8448,-42916640425.2,64,702567793295,3890.3391820,-1409411683713024,86.493033,-289663285723,-4.073141013,
        -4503599627370489,4503599627370489,
        -4503599627370490,4503599627370490,
        -4503599627370491,4503599627370491,
        -4503599627370492,4503599627370492,
        -4503599627370493,4503599627370493,
        -4503599627370494,4503599627370494,
        -4503599627370495,4503599627370495];
    
    var int32min = -2147483648;
    var int32max = 2147483647;
    
    var R0 = function (a)
    {
        return a < 0 ? parseInt(a - 0.5, 10) : parseInt(a + 0.5, 10);
    };
    var R1=function(a) { return a < 0 ? Math.ceil(a-0.5): Math.round(a)};
    var R2=function(a) { return a < 0 ? Math.ceil(a-0.5): Math.floor(a + 0.5)};
    var R3=function(a) { return a < 0 ? -Math.round(Math.abs(a)): Math.round(a)};
    var R4=function(a)
    {    
      if (a<0)  
      {
        a-=0.5;
        if (a < int32min)
        b = Math.ceil(a);
        else b = a | 0;
      }
      else 
      {
        a+=0.5;
        if (a > int32max)
        b = Math.floor(a);
        else b = a | 0;
      }
      return b;
    }
    var R5=function(a)
    {    
      if (a<0)  
      {
        a-=0.5;
        if (a < int32min)
        b = Math.ceil(a);
        else b = ~~a;
      }
      else 
      {
        a+=0.5;
        if (a > int32max)
        b = Math.floor(a);
        else b = ~~a;
      }
      return b;
    }
    if (typeof(Number.toInteger)=="function") var R6 = function(a)
    {
      return a < 0 ? Number.toInteger(a - 0.5) : Number.toInteger(a + 0.5);
    }
    else var R6 = function (a)
    {
      if (a < 0)
      {
        a-=0.5;
        var s = a.toString();
        var i = s.indexOf(".");
        if (i!=-1) return Number(s.substring(0,i));
        else return Number(a);
      }
      else
      {
        a+=0.5;
        var s = a.toString();
        var i = s.indexOf(".");
        if (i!=-1) return Number(s.substring(0,i));
        else return Number(a);
      }
    }
    
    var a,b,c,d,e,f,g,h,j;
        for(i=0;i<nums.length;i++)
        {
          a = nums[i];
          b = R0(a);
          c = R1(a);
          d = R2(a);
          e = R3(a);
          f = R4(a);
          g = R5(a);
          h = R6(a);
          j = R6(a);
          //console.log(b, c, d, e, f, g, h, j);
          // typeof(b), typeof(c), typeof(d), typeof(e), typeof(f), typeof(g), typeof(h) )
          if (!(  b===c && b===d && b===e && b===f && b===g && b===h && b===j
             && c===c && c===d && c===e && c===f && c===g && c===h && c===j
             && d===c && d===d && d===e && d===f && d===g && d===h && d===j
             && e===c && e===d && e===e && e===f && e===g && e===h && e===j
             && f===c && f===d && f===e && f===f && f===g && f===h && f===j
             && g===c && g===d && g===e && g===f && g===g && g===h && g===j
             && h===c && h===d && h===e && h===f && h===g && h===h && h===j
               && j===c && j===d && j===e && j===f && j===g && j===h && j===j )
             ) alert("SOME FUNCTION DOES NOT TRUNCATE IN SAME WAY!");
        }

Test runner

Ready to run.

Testing in
TestOps/sec
R0
var a,b,i;
for(i=0;i<nums.length;i++)
{
  a = nums[i];
  b = R0(a);
}
ready
R1
var a,b,i;
for(i=0;i<nums.length;i++)
{
  a = nums[i];
  b = R1(a);
}
ready
R2
var a,b,i;
for(i=0;i<nums.length;i++)
{
  a = nums[i];
  b = R2(a);
}
ready
R3
var a,b,i;
for(i=0;i<nums.length;i++)
{
  a = nums[i];
  b = R3(a);
}
ready
R4
var a,b,i;
for(i=0;i<nums.length;i++)
{
  a = nums[i];
  b = R4(a);
}
ready
R5
var a,b,i;
for(i=0;i<nums.length;i++)
{
  a = nums[i];
  b = R5(a);
}
ready
R6
var a,b,i;
for(i=0;i<nums.length;i++)
{
  a = nums[i];
  b = R6(a);
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.

  • Revision 1: published by Timo on