[SciPy-User] scipy.weave.blitz bug using functions

Felix Schlesinger schlesin at cshl.edu
Sun Oct 18 21:23:45 EDT 2009


Hi,

is this a bug or am I doing something wrong?

import scipy
arr = scipy.random.rand(1000000)
res = scipy.zeros_like(arr)
blitz("""res = sin(2*sin(arr+1))""")

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)

/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy/weave/blitz_tools.pyc
in blitz(expr, local_dict, global_dict, check_size, verbose, **kw)
     32     #    of time.  It also can cause core-dumps if the sizes
of the inputs
     33     #    aren't compatible.
---> 34     if check_size and not
size_check.check_expr(expr,local_dict,global_dict):
     35         raise 'inputs failed to pass size check.'
     36

/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy/weave/size_check.pyc
in check_expr(expr, local_vars, global_vars)
     49         if isnumeric(val):
     50             values[var] = val
---> 51     exec(expr,values)
     52     try:
     53         exec(expr,values)

NameError: name 'sin' is not defined
---------------------------------------------------------------------------------------------------------

If I do
blitz("""res = sin(2*sin(arr+1))""", check_size=0)
it works. Seems to me the check_size code tries to check the size of
the array 'sin', instead of recognizing it as a function.

Felix



More information about the SciPy-User mailing list