Hello experts,
Running sage version 4.8 on Mac OS X 10.6.8.
I am attempting to cython-ize a sage script that applies numpy, but I can't get
cython to compile numpy.vectorize — the error message is
ValueError: failed to determine the number of arguments for <built-in function
pressure>
Is this a bug in cython, or am I mis-applying numpy and cython?
The test script (test.spyx) that produces this error is
import numpy as np
cimport numpy as np
gamma = 1.4
def pressure(rho, u, v, rho_E): return (gamma - 1) * (rho_E - rho * (u * u + v
* v) / 2.)
vpressure = np.vectorize(pressure, otypes = [np.float], \
doc = "Vectorized pressure(rho, u, v, rho*E)")
and the full error traceback when I invoke sage: load("test.spyx") is:
Compiling /Users/jim/Documents/Fluid_Mechanics/AA543_HW5/test.spyx...
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/Users/jim/<ipython console> in <module>()
/Applications/sage/local/lib/python2.6/site-packages/sage/structure/sage_object.so
in sage.structure.sage_object.load (sage/structure/sage_object.c:7715)()
/Applications/sage/local/lib/python2.6/site-packages/sage/misc/preparser.pyc in
load(filename, globals, attach)
1648 elif fpath.endswith('.spyx') or fpath.endswith('.pyx'):
1649 import interpreter
-> 1650 exec(interpreter.load_cython(fpath), globals)
1651 elif fpath.endswith('.m'):
1652 # Assume magma for now, though maybe .m is used by maple and
/Users/jim/<string> in <module>()
/Users/jim/_Users_jim_Documents_Fluid_Mechanics_AA543_HW5_test_spyx_1.pyx in
init _Users_jim_Documents_Fluid_Mechanics_AA543_HW5_test_spyx_1
(_Users_jim_Documents_Fluid_Mechanics_AA543_HW5_test_spyx_1.c:3322)()
7 cimport numpy as np
8 gamma = 1.4
9 def pressure(rho, u, v, rho_E): return (gamma - 1) * (rho_E - rho * (u
* u + v * v) / 2.)
---> 10 vpressure = np.vectorize(pressure, otypes = [np.float], \
11 doc = "Vectorized pressure(rho, u, v, rho*E)")
/Applications/sage/local/lib/python2.6/site-packages/numpy/lib/function_base.pyc
in __init__(self, pyfunc, otypes, doc)
1767 self.thefunc = pyfunc
1768 self.ufunc = None
-> 1769 nin, ndefault = _get_nargs(pyfunc)
1770 if nin == 0 and ndefault == 0:
1771 self.nin = None
/Applications/sage/local/lib/python2.6/site-packages/numpy/lib/function_base.pyc
in _get_nargs(obj)
1699
1700 raise ValueError(
-> 1701 "failed to determine the number of arguments for %s" %
(obj))
1702
1703
ValueError: failed to determine the number of arguments for <built-in function
pressure>
Thank you,
Jim Clark
--
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org