> from sympy import symbols, Piecewise, ccode >>> x, y-6ren">
gpt4 book ai didi

python - 为 sympy 表达式 "e1 op e2"生成 C 代码,其中 op 是算术比较运算符

转载 作者:太空宇宙 更新时间:2023-11-04 00:58:06 26 4
gpt4 key购买 nike

假设我有一个sympy 表达式

e1 op e2

哪里op是任何算术比较运算符,例如 <, >, <=

我要生成C代码

double f(double x1,double x2,..., double xn){
if (e1 op e2) return 0 else return 1;
}

其中 x1,...,x2 是 e1 或 e2 中的自由变量。我可以使用 sympy.printing.ccodesympy.utlilities.codegen 来简化此代码生成吗?

最佳答案

这是一个使用 ccode 的例子和 Piecewise (您需要提供函数体作为模板):

>>> from sympy import symbols, Piecewise, ccode
>>> x, y, z = symbols('x y z')
>>> e1 = x + 2
>>> e2 = y - 5
>>> rel = e1 < e2
>>> pw = Piecewise((0, rel), (1, True))
>>> print(ccode(pw, assign_to=z))
if (x + 2 < y - 5) {
z = 0;
}
else {
z = 1;
}

关于python - 为 sympy 表达式 "e1 op e2"生成 C 代码,其中 op 是算术比较运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34121023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com