test Math.Sin vs Wake Implementation

Benchmark created by nathan on


Setup

if (typeof z == 'undefined') {z=0;}
    r = (Math.random()+z+1)/3 * Math.pi*4
    
    g = 3.1415926535897931;
    function $B(a,b){return a-b*Math.floor(a/b);}
    
    k = function(a) {
                var b = 1;
                a = $B(a, (g * 2));
                if ((a > ((g / 2) * 3))) {
                    a = ((g * 2) - a);
                    b = -1;
                } else {
                    if ((a > g)) {
                        a = (a - g);
                        b = -1;
                    } else {
                        if ((a > (g / 2))) {
                            a = (g - a);
                        }
                    }
                };
                if ((a <= (0.25 * g))) {
                    return (((((((((((((((((((((((-2.3070880552842268e-08 * a) - 5.4292285358126384e-09) * a) + 2.7629506315451879e-06) * a) - 5.7743532120493541e-09) * a) - 0.00019840971808022858) * a) - 1.013443194110918e-09) * a) + 0.0083333335585026556) * a) - 3.1561965542702875e-11) * a) - 0.1666666666640651) * a) - 1.1052258419078092e-13) * a) + 1.0000000000000018) * a) - 5.0393593664144816e-18) * b);
                } else {
                    if ((a <= (0.42499999999999999 * g))) {
                        return (((((((((((((((((((((((((((((((((((((((-4.0129846514425183e-18 * a) - 5.5298092288731252e-17) * a) + 3.2005664301377431e-15) * a) - 1.8424934583324374e-15) * a) - 7.5829758601628722e-13) * a) - 1.7246616656090976e-14) * a) + 1.6062720590304631e-10) * a) - 6.3313688374442689e-14) * a) - 2.5052019333133275e-08) * a) - 1.0294992323363254e-13) * a) + 2.7557320204432725e-06) * a) - 7.6811652636869064e-14) * a) - 0.00019841269836345265) * a) - 2.5589431798686063e-14) * a) + 0.0083333333333439445) * a) - 3.4307681763812263e-15) * a) - 0.16666666666666585) * a) - 1.4304124500782659e-16) * a) + 1) * a) - 7.9373937782773634e-19) * b);
                    } else {
                        if ((a <= (0.47499999999999998 * g))) {
                            return (((((((((((((((((((((((((((((((((((((((((((((((-6.050762507102116e-24 * a) - 6.819233256921219e-22) * a) + 2.7330437957723388e-20) * a) - 6.0311700104693751e-20) * a) - 7.8702432184395218e-18) * a) - 1.5959104251227015e-18) * a) + 2.817327169902188e-15) * a) - 1.7781074158057014e-17) * a) - 7.646714129330531e-13) * a) - 9.5772220956444478e-17) * a) + 1.6059061127364712e-10) * a) - 2.6548585559353023e-16) * a) - 2.5052108038329296e-08) * a) - 3.8610393361721754e-16) * a) + 2.7557319227628418e-06) * a) - 2.8984541693967245e-16) * a) - 0.00019841269841250553) * a) - 1.0606103920068906e-16) * a) + 0.0083333333333333801) * a) - 1.6727691817969815e-17) * a) - 0.16666666666666669) * a) - 8.6739286890751448e-19) * a) + 1) * a) - 6.2704106302665015e-21) * b);
                        } else {
                            return (((((((((((((((((((((((((((((((((((((((((((((((-1.518612078937418e-24 * a) - 8.354850535501121e-22) * a) + 2.9820103545837762e-20) * a) - 8.6010862169554487e-20) * a) - 7.6806672196541608e-18) * a) - 2.6592588183068463e-18) * a) + 2.8220382374087473e-15) * a) - 3.4685718594549575e-17) * a) - 7.6462143428118836e-13) * a) - 2.1896738152850669e-16) * a) + 1.6059086648086768e-10) * a) - 7.1198921429299466e-16) * a) - 2.5052107377005037e-08) * a) - 1.215306787661268e-15) * a) + 2.7557319236409244e-06) * a) - 1.0712822352964282e-15) * a) - 0.00019841269841192573) * a) - 4.604930194841011e-16) * a) + 0.0083333333333335553) * a) - 8.5346498335061356e-17) * a) - 0.16666666666666666) * a) - 5.2021923698102024e-18) * a) + 1) * a) - 4.4219675927065598e-20) * b);
                        }
                    }
                };
            };

Test runner

Ready to run.

Testing in
TestOps/sec
Native
z = Math.sin(r)
ready
Wake
z = k(r)
ready

Revisions

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