如何在Cython中高效地将malloc数组指针(或numpy数组指针)返回给Python3。
只要不返回数组指针,Cython代码就可以正常工作。
我希望:
def double complex* randn_zig(int n):
...
r = malloc(n*n*sizeof(double complex))
...
return r
c11(gcc 11)等效的代码如下:
double complex* randn_zig(int n){
r = malloc(n*n*sizeof(double complex))
return r
}
我曾经尝试过以下几种方式来调用函数
<double complex*> randn_zig(int n)
和 randn_zig(<double complex*> r, int n)
,但都没有成功。如果我能找到一种方法来返回一个指向大型 10^6 到 10^10 复数数组的指针,那么 C 和 Cython 的代码版本将比 Numpy/PyLab randn 版本快 5 倍。请注意,在翻译过程中需要保留 HTML 标记。