我需要使用ctypes函數來減少python中quad的運行時間。這是我原來的問題original question,但現在我知道我需要遵循什麼路徑。我需要按照與此處similar problem link相同的步驟操作。optimazing使用ctypes python quad
但在我的情況下,將在數值積分中處理的函數調用另一個python函數。就像這樣:
from sklearn.neighbors import KernelDensity
import numpy as np
funcA = lambda x: np.exp(kde_bad.score_samples([[x]]))
quad(funcA, 0, cut_off)
其中停產僅僅是我在我的代碼決定一個標量,並kde_bad是使用KernelDensity內核對象創建的。
所以我的問題是我如何需要在C中指定函數?相當於此:
//testlib.c
double f(int n, double args[n])
{
return args[0] - args[1] * args[2]; //corresponds to x0 - x1 * x2
}
任何輸入讚賞!