我对使用sympy.utilities.autowrap.ufuncify并在复数上使用该函数感兴趣。但是,默认情况下这无效:
x = sympy.Symbol('x')
f = sympy.utilities.autowrap.ufuncify([x], x**2)
f(arange(5)+1j)
产生
TypeError:输入类型不支持ufunc'wrapper_module_0',并且根据强制转换规则“ safe”,不能将输入安全地强制转换为任何受支持的类型
这并不奇怪,因为f.types
是['d->d']
。
有没有办法告诉ufuncify支持特定的数据类型(特别是复杂的数据类型)? ufuncify有各种options,但我不确定是否有我想要的。