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)
10000 loops, best of 3: 188 µs per loop
100000 loops, best of 3: 5.36 µs per loop
100000 loops, best of 3: 3.91 µs per loop
rand_matrices[1] (50 x 50)
1000 loops, best of 3: 1.16 ms per loop
10000 loops, best of 3: 66.6 µs per loop
10000 loops, best of 3: 63.6 µs per loop
rand_matrices[2] (100 x 100)
100 loops, best of 3: 3.04 ms per loop
1000 loops, best of 3: 440 µs per loop
1000 loops, best of 3: 442 µs per loop
rand_matrices[3] (1000 x 1000)
1 loops, best of 3: 1.39 s per loop
1 loops, best of 3: 396 ms per loop
1 loops, best of 3: 391 ms per loop

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


Darwin-13.4.0-x86_64-i386-64bit

In [5]:
import sys
print sys.version


2.7.8 (default, Jul  2 2014, 10:14:46) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)]

In [6]:
print np.__version__


1.9.0

In [7]:
import numba
print numba.__version__


0.14.0

In [7]: