コード例 #1
0
ファイル: test_vectorize.py プロジェクト: glycerine/numba
 def test_manual_vectorization(self):
     x = linspace(-5, 5, 1001)
     t = Translate(sinc)
     t.translate()
     vsinc0 = t.make_ufunc()
     y = vsinc0(x)
     self.assertTrue((y == array([sinc(x_elem) for x_elem in x])).all())
コード例 #2
0
ファイル: test_vectorize.py プロジェクト: certik/numba
 def test_manual_vectorization(self):
     x = linspace(-5,5,1001)
     t = Translate(sinc)
     t.translate()
     vsinc0 = t.make_ufunc()
     y = vsinc0(x)
     self.assertTrue((y == array([sinc(x_elem) for x_elem in x])).all())
コード例 #3
0
ファイル: reductor.py プロジェクト: sdiehl/numpush
def numba_reconstruct(md, func, otype=LLVM):
    ret_type, arg_types = md
    tr = Translate(func, ret_type, arg_types)
    tr.translate()

    if otype == LLVM:
        return tr.get_ctypes_func(llvm=True)
    elif otype == UFUNC:
        return tr.make_ufunc(llvm=True)
    elif otype == GUFUNC:
        pass
    else:
        raise Exception("Unknown numba cast")
コード例 #4
0
ファイル: example.py プロジェクト: aterrel/numba
from math import sin, pi
from numba.decorators import vectorize

#@vectorize
def sinc(x):
    if x==0.0:
        return 1.0
    else:
        return sin(x*pi)/(pi*x)

from numba.translate import Translate
t = Translate(sinc)
t.translate()
print t.mod
res = t.make_ufunc()

sinc = vectorize(sinc)

from numpy import linspace
print res(linspace(-5,5,50))
コード例 #5
0
ファイル: example.py プロジェクト: bluemoon/numba
from math import sin, pi
from numba.decorators import vectorize

#@vectorize
def sinc(x):
    if x==0.0:
        return 1.0
    else:
        return sin(x*pi)/(pi*x)

from numba.translate import Translate
t = Translate(sinc)
t.translate()
print t.mod
sinc = t.make_ufunc()

#sinc = vectorize(sinc)

from numpy import linspace
x = linspace(-5,5,1001)
y = sinc(x)
from pylab import plot, show
plot(x,y)
show()
コード例 #6
0
    # Fortran:
    t = timeit.Timer(lambda : f2py_arc_distance.arc_distance(np_a, np_b))
    print "Cython Implementation: %.5f " % (t.timeit(5))
    cy_c = cython_arc_distance.arc_distance(np_a, np_b)

    t = timeit.Timer(lambda : arc_distance_numexpr(np_a, np_b))
    print "Numexpr Implementation: %.5f " % (t.timeit(5))
    ne_c = arc_distance_numexpr(np_a, np_b)

    for i in range(np_c.shape[0]):
        for j in range(np_c.shape[1]):
            assertAlmostEqual(cy_c[i,j],np_c[i,j])

##   Doesn't work yet.         
    t = Translate(arc_distance_numba)
    numba_arc_distance = t.make_ufunc()
    x = time.time()
    
    for I in range(3):
        if (len(a.shape) != 2) or (a.shape[1] != 2):
            raise ValueError('a should be Nx2')
        if (len(b.shape) != 2) or (b.shape[1] != 2):
            raise ValueError('b should be Nx2')
        #  Check for two dimensional arrays
           
        theta_1 = np.tile(a[:,0],(b.shape[0],1)).T
        phi_1 = np.tile(a[:,1],(b.shape[0],1)).T
        theta_2 = np.tile(b[:,0],(a.shape[0],1))
        phi_2 = np.tile(b[:,1],(a.shape[0],1))