【发布时间】:2016-10-27 05:07:15
【问题描述】:
这是 C 代码:
btemp = (*beta)/(*beta_prev);
for (k=0; k<xsize*ysize; k++) {
parray[k] = zarray[k] + btemp*parray[k];
}
我正在 Python 中执行以下操作:
def saxpy(a, x, y):
return np.array([a * xi + yi for xi, yi in zip(x, y)], np.float32)
#...
btemp = beta / beta_prev
ptemp = saxpy(btemp, parray, zarray)
parray[:] = ptemp
在我的代码中,它似乎工作正常(zarray 和 parray 不断变化,因为它们在 while 循环中)。
但我会这样做:
btemp = beta / beta_prev
parray = saxpy(btemp, parray, zarray)
我的代码在循环中迭代了几次后失败,它们不一样吗?
【问题讨论】:
-
你能说明这些都是如何在 for 循环中绑定的吗?
-
您使用的是 Python 2 还是 Python 3?
beta和beta_prev的类型是什么? -
既然c使用的是指针,那么如何初始化和修改呢?
-
代码比较复杂,不知道贴出来好不好。我正在使用 Python 2,并且 beta y beta_prev 是浮动的。
-
zarray和parray是大小为xsize*ysize的一维数组。