Topic: PyPy vs CPython, my benchmark

Full NumPy support is not implemented for PyPy yet, but some simple benchmarks could be performed.

To check performance PyPy vs CPython on a simple optimization problem I have extracted some code from my NLP goldenSection solver:

from numpy import *

def goldenSection(f, a, b, xtol):
    a, b = min((a, b)), max((a, b))
    s1 = 0.3819660112501051# (3-sqrt(double(5)))/2
    s2 = 0.6180339887498949# (sqrt(double(5))-1)/2
    x1 = a+s1*(b-a)
    x2 = a+s2*(b-a)
    y1,  y2 = f(x1),  f(x2)
    for i in range(10000):
        if y1 <= y2:
            xmin,  ymin = x1,  y1
            b,  x2 = x2,  x1
            x1 = a + s1*(b - a)
            y2, y1 = y1,  f(x1)
        else:
            xmin,  ymin = x2,  y2
            a,  x1 = x1,  x2
            x2 = a + s2*(b - a)
            y1, y2 = y2,  f(x2)
        # iterfcn()
        if not i % 10: print('iter: %d   Diff_x: %e' %(i, b-a))
        if b - a < xtol: 
            return xmin,  ymin, i
    return xmin,  ymin, -1 # -1 means solution hasn't been reached

if __name__ == '__main__':
    N = 10000
    # 1
    f = lambda x: sum([1e-20 * x**2 + x + (1e-20*x)**4 for i in range(N)])
    # 2
    f = lambda x: sum([sin(1e-20 * x) for i in range(N)])
    # 3 
    f = lambda x: sum([abs(arctan(x)) for i in range(N)])

    lb = -1e10
    ub = 1e10
    xtol = 1e-20
    from time import time
    t = time()
    x_opt, f_opt, iter = goldenSection(f, lb, ub, xtol)
    if iter == -1: print('solution has not been reached')
    print('iter: %d   time elapsed: %0.1f' % (iter, time()-t))

Here's my output for those functions f, cases 1, 2, 3 in the code above:
                        PyPy 1.6                                       CPython 2.7.1+                    PyPy speedup, times
Case 1    iter: 78   time elapsed: 0.6                  iter: 78   time elapsed: 1.0                     1.7
Case 2    iter: 78   time elapsed: 0.4                  iter: 78   time elapsed: 3.7                     9.3
Case 3    iter: 142  time elapsed: 0.6                iter: 142  time elapsed: 7.1                    11.8

My arch: Linux KUBUNTU 11.04, AMD 3800+