将 python、numpy 和 scipy 代码转换为 C++ 兼容代码?

Posted

技术标签:

【中文标题】将 python、numpy 和 scipy 代码转换为 C++ 兼容代码?【英文标题】:Converting python, numpy, and scipy code into C++ compatible code? 【发布时间】:2017-07-07 21:04:27 【问题描述】:

我有一段代码使用了 numpyscipy 中的几个函数,我需要在 C++ 中使用这些函数,但我对 C++ 的了解太有限,无法转移将此代码转换为这种语言。

我需要什么样的 C++ 函数才能有这样的东西:

import numpy as np
from scipy.integrate import quad
from scipy.optimize import minimize

minor = 2.23
major = 3.05
encoderdistance = 2.53141952655
print minimize(lambda x: abs(quad(func, 0, x)[0] - encoderdistance), 1).x
min = 90-((180/np.pi) * np.arctan(((np.tan(minimize(lambda x: abs(quad(func, 0, x)[0] - encoderdistance), 1).x))*minor)/major))
print min

谢谢!

【问题讨论】:

我认为这不是 *** 的正确问题格式。您应该提出与特定问题相关的问题。由于代码只有几行,转换成C++并不难。我建议你先尝试自己转换,阅读numpyscipy文档了解每个功能。如果您在执行此操作时有疑问,我认为 *** 社区将很乐意帮助您解决具体问题。 ***.com/questions/16512817/numerical-integration-in-c 尝试集成,其余的在我认为的 cmath 库中 Convert Python program to C/C++ code?的可能重复 【参考方案1】:

我只知道 Cython 可以为您指引正确的方向。 Quad http://quadpackpp.sourceforge.net 可以轻松地从 C++ 调用。大多数 numpy 函数都在 libc.math 中(abs,可能是 arctan 等)。 Pi 您可以将值硬编码为双精度值。尽量减少您必须搜索 scipy 源代码 https://github.com/scipy/scipy/blob/master/scipy/optimize/optimize.py 以查看调用的库。大多数 numpy / scipy 函数依赖于 Blas / Lapack 或使用 MKL C++ 变体。

【讨论】:

以上是关于将 python、numpy 和 scipy 代码转换为 C++ 兼容代码?的主要内容,如果未能解决你的问题,请参考以下文章

使用 numpy/scipy 最小化 Python multiprocessing.Pool 中的开销

Python中安装numpy matplotlib scipy

从 C 代码调用 numpy 函数

python使用scipy中的sparse.csr_matrix函数将numpy数组转化为稀疏矩阵(Create A Sparse Matrix)

python numpy/scipy曲线拟合

python 测试numpy和scipy设置