In [1]:
import numpy as np
from gth_solve_jit import gth_solve, gth_solve_jit

In [2]:
sizes = [10, 50, 100, 1000]
rand_matrices = []

for n in sizes:
    Q = np.random.rand(n, n)
    Q /= np.sum(Q, axis=1, keepdims=True)
    rand_matrices.append(Q)

In [3]:
for i, Q in enumerate(rand_matrices):
    print 'rand_matrices[{0}] ({1} x {2})'.format(i, Q.shape[0], Q.shape[1])
    %timeit gth_solve(Q)
    %timeit gth_solve_jit(Q)
    %timeit gth_solve_jit(Q, overwrite=True)


rand_matrices[0] (10 x 10)
1000 loops, best of 3: 242 µs per loop
100000 loops, best of 3: 6.75 µs per loop
100000 loops, best of 3: 5.24 µs per loop
rand_matrices[1] (50 x 50)
1000 loops, best of 3: 1.5 ms per loop
10000 loops, best of 3: 83.4 µs per loop
10000 loops, best of 3: 80.2 µs per loop
rand_matrices[2] (100 x 100)
100 loops, best of 3: 4.38 ms per loop
1000 loops, best of 3: 578 µs per loop
1000 loops, best of 3: 578 µs per loop
rand_matrices[3] (1000 x 1000)
1 loops, best of 3: 1.77 s per loop
1 loops, best of 3: 556 ms per loop
1 loops, best of 3: 550 ms per loop

In [4]:
import platform
print platform.platform()


Darwin-10.8.0-i386-64bit

In [5]:
import sys
print sys.version


2.7.8 (default, Aug 12 2014, 11:32:49) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]

In [6]:
print np.__version__


1.9.0

In [7]:
import numba
print numba.__version__


0.14.0

In [7]: