In [1]:
%matplotlib inline
import numpy as np
from fatiando import gridder, utils
from fatiando.mesher import PrismMesh, Prism
from fatiando.gravmag import prism, _prism_numpy

In [2]:
model = PrismMesh((-200, 200, -200, 200, 0, 400), (5, 5, 5))
model.addprop('density', np.ones(model.size))
model.addprop('magnetization', utils.ang2vec(2*np.ones(model.size), 25, -10))
inc, dec = -30, 50
x, y, z = gridder.regular((-500, 500, -500, 500), (100, 100), z=-1)

In [3]:
%timeit prism.gz(x, y, z, model)


1 loops, best of 3: 933 ms per loop

In [4]:
%timeit _prism_numpy.gz(x, y, z, model)


1 loops, best of 3: 1.61 s per loop

In [5]:
%timeit prism.gzz(x, y, z, model)


1 loops, best of 3: 434 ms per loop

In [6]:
%timeit _prism_numpy.gzz(x, y, z, model)


1 loops, best of 3: 636 ms per loop

In [7]:
%timeit prism.tf(x, y, z, model, inc, dec)


1 loops, best of 3: 1.91 s per loop

In [8]:
%timeit _prism_numpy.tf(x, y, z, model, inc, dec)


1 loops, best of 3: 3.39 s per loop

In [9]:
model2 = PrismMesh((-200, 200, -200, 200, 0, 400), (20, 20, 20))
model2.addprop('density', np.ones(model2.size))
model2.addprop('magnetization', utils.ang2vec(2*np.ones(model2.size), 25, -10))
x2, y2, z2 = gridder.regular((-500, 500, -500, 500), (10, 10), z=-1)

In [10]:
%timeit prism.gz(x2, y2, z2, model2)


1 loops, best of 3: 1.07 s per loop

In [11]:
%timeit _prism_numpy.gz(x2, y2, z2, model2)


1 loops, best of 3: 3.32 s per loop

In [12]:
%timeit prism.gzz(x2, y2, z2, model2)


1 loops, best of 3: 892 ms per loop

In [13]:
%timeit _prism_numpy.gzz(x2, y2, z2, model2)


1 loops, best of 3: 1.99 s per loop

In [14]:
%timeit prism.tf(x2, y2, z2, model2, inc, dec)


1 loops, best of 3: 1.52 s per loop

In [15]:
%timeit _prism_numpy.tf(x2, y2, z2, model2, inc, dec)


1 loops, best of 3: 6.05 s per loop

In [15]: