sympyの論理式から、同等のCコードを取得したいと思います。まず、and
とor
のようなネイティブ論理演算子を使用することができないことに気付きました。十分に公正で、&
and friendsがあります。私はSympy:論理式のCコード
from sympy import *
from sympy.utilities.codegen import codegen
x = Symbol('x')
is_valid = Symbol('is_valid')
# f = x > 0 and is_valid # TypeError: cannot determine truth value of
f = (x > 0) & is_valid # And(is_valid, x > 0)
# TypeError: The first argument must be a sympy expression.
[(c_name, c_code), (h_name, c_header)] = codegen(("f", f), "C")
が、何らかの理由で、私は
TypeError: The first argument must be a sympy expression.
任意のヒントを取得していますを試してみましたか?
Sympyは 'and'と' or'を削除しません。これらの演算子はPythonでは "ハードコーディング"されており、型によってオーバーロードされることはありません。したがって、Pythonはそれらを実行しようとしますが、失敗するか、結果が得られません。 – BlackJack
@Nico - 私は自分の答えを削除したいと思います。それを正しいと断ってください。 –