差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
programming_algorithm:python_tips [2020/07/03] – [Numba] ikatakos | programming_algorithm:python_tips [2020/07/03] – [関数を分ける] ikatakos | ||
---|---|---|---|
行 361: | 行 361: | ||
* それぞれを個別にコンパイル | * それぞれを個別にコンパイル | ||
- | * 1つの大枠の関数の中で個々の関数定義も書いて、大枠の関数のみコンパイル | + | * 1つの大枠の関数の中で個々の関数定義も書いて、大枠の関数のみコンパイル(関数内関数) |
前者は関数毎にコンパイル指定(JITなら'' | 前者は関数毎にコンパイル指定(JITなら'' | ||
後者は大枠関数のみの指定で特に問題なく内部の関数も型推論してくれる。 | 後者は大枠関数のみの指定で特に問題なく内部の関数も型推論してくれる。 | ||
- | 普通に後者でいいと今のところは思っている。 | + | ただし、Numbaの内部関数が再帰を含む場合、それはコンパイルが通らない。 |
+ | |||
+ | numba.core.errors.NotDefinedError: | ||
+ | |||
+ | 通常は1つの大枠関数に入れた方が手間が少ないのでそうし、再帰関数のみ個別にコンパイルする。 | ||
==== 独自クラス ==== | ==== 独自クラス ==== |