# benchmark1.frink

``` // Compares against Mathematica benchmarks: //http://www.wolfram.com/products/mathematica/newin5/performance/bignumber.html use root.frink setPrecision randomFloat[bits] := {    n = randomBits[bits]    d = 2^random[bits]    return 1. n/d } println["\nRunning timing loops..."] for iter = 1 to 5 {    println["Iteration \$iter:"]    // Multiplying 2 1000-digit reals    limit = 10000    n1 = randomFloat[ceil[log/log * 1000]]    n2 = randomFloat[ceil[log/log * 1000]] //   println[n1] //   println[n2]    start = now[]    for i = 1 to limit    { //      c = n1 * n1 //      println[c]    }    end = now[]    println["r*r: "]    println["The loop took " + (end - start -> seconds) + " seconds."]    if (end - start > 0 s)    {       println["This is " + (limit / (end-start) -> s^-1) + " operations/sec."]       println["     or " + ((end-start) / limit -> s) + " sec/operation.\n"]    }    // Multiplying 2 1000-digit integers 10000 times    limit = 10000    bits = ceil[log/log * 1000]    r1 = randomBits[bits]    r2 = randomBits[bits]    start = now[]    for i = 1 to limit       c = r1 * r2    end = now[]    println["Multiplying integers: "]    println["The loop took " + (end - start -> seconds) + " seconds."]    if (end - start > 0 s)    {       println["This is " + (limit / (end-start) -> s^-1) + " operations/sec."]       println["     or " + ((end-start) / limit -> s) + " sec/operation.\n"]    }    n = randomBits[ceil[log/log * 100000]]    d = randomBits[ceil[log/log * 100]]    start = now[]    limit = 100    for i = 1 to limit       c = n/d    end = now[]    println["gcd: "]    println["The loop took " + (end - start -> seconds) + " seconds."]    if (end - start > 0 s)    {       println["This is " + (limit / (end-start) -> s^-1) + " operations/sec."]       println["     or " + ((end-start) / limit -> s) + " sec/operation.\n"]    }    start = now[]    limit = 10    n = randomFloat[ceil[log/log * 1000]]    println[n]    for i = 1 to limit       c = root[n, 2, 1e-500]    end = now[]    println["sqrt: "]    println["The loop took " + (end - start -> seconds) + " seconds."]    if (end - start > 0 s)    {       println["This is " + (limit / (end-start) -> s^-1) + " operations/sec."]       println["     or " + ((end-start) / limit -> s) + " sec/operation.\n"]    } } ```

This is a program written in the programming language Frink.
For more information, view the Frink Documentation or see More Sample Frink Programs.

Alan Eliasen was born 18369 days, 17 hours, 22 minutes ago.