現在、numbaの高次関数を扱う最良の方法は何ですか?numbaの関数型
私はsecant methodを実装:
def secant_method_curried (f):
def inner (x_minus1, x_0, consecutive_tolerance):
x_new = x_0
x_old = x_minus1
x_oldest = None
while abs(x_new - x_old) > consecutive_tolerance:
x_oldest = x_old
x_old = x_new
x_new = x_old - f(x_old)*((x_old-x_oldest)/(f(x_old)-f(x_oldest)))
return x_new
return numba.jit(nopython=False)(inner)
問題はそのf
numba伝える方法がないということですdoube(double)
ので、nopython=True
と、上記のコードブレーク:それはのようにあるようです
TypingError: Failed at nopython (nopython frontend)
Untyped global name 'f'
以前のバージョンのFunctionTypeでしたが、削除/名前が変更されました:http://numba.pydata.org/numba-doc/0.8/types.html#functions
On this pageには、numba.addressof()というものがありますが、これは役に立つと思われますが、4年前の日付です。
'f'が(コードが例外を生成する)と完全なトレースバックを含めることができますか? – MSeifert