相关疑难解决方法(0)

如何将附加参数传递给作为LowLevelCallable传递给nipa cfunc的scipy.integrate.quad

该文档讨论了使用numba的cfuncs作为LowLevelCallable参数scipy.integrate.quad.我需要额外的参数相同的东西.

我基本上试图做这样的事情:

import numpy as np
from numba import cfunc
import numba.types
voidp = numba.types.voidptr
def integrand(t, params):
    a = params[0] # this is additional parameter
    return np.exp(-t/a) / t**2
nb_integrand = cfunc(numba.float32(numba.float32, voidp))(integrand)
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用,因为params它们应该是voidptr/ void*并且它们无法转换为double.我有以下错误消息:

TypingError: Failed at nopython (nopython frontend)
Invalid usage of getitem with parameters (void*, int64)
 * parameterized
Run Code Online (Sandbox Code Playgroud)

我没有找到任何关于如何从void*Numba中提取值的信息.在C中,应该是这样的a = *((double*) params)- 在Numba中可以做同样的事情吗?

python scipy numba

12
推荐指数
1
解决办法
822
查看次数

标签 统计

numba ×1

python ×1

scipy ×1