我有一小部分想要使用 Cython 包装的现有 C 代码。我希望能够设置许多 numpy 数组,然后将这些数组作为参数传递给 C 代码,其函数采用标准 c 数组(1d 和 2d)。在弄清楚如何编写正确的 .pyx 代码来正确处理事情方面,我有点卡住了。
有一些函数,但文件 funcs.h 中的一个典型函数如下所示:
double InnerProduct(double *A, double **coords1, double **coords2, const int len)
然后我有一个具有相应行的 .pyx 文件:
cdef extern from "funcs.h":
double InnerProduct(double *A, double **coords1, double **coords2, int len)
我摆脱了const因为 cython 不支持它。我被卡住的地方是包装器代码应该是什么样子,然后将 MxN numpy 数组传递给 **coords1 和 **coords2 参数。
我一直在努力为此类问题找到正确的文档或教程。任何建议将不胜感激。