我真的试图围绕矢量化,但我似乎无法理解它。我不知道我是否不理解如何向量化,或者如果我不理解正在使用的数组符号。我正在学校学习的循环示例如下:
for (M=0; M< number_of_iterations/2; M++){
for (i=2; i<n-1; i++)
for (j=1; j<n-1; j++)
y[i][j]= (x[i-1][j]+x[i][j-1]+x[i+1][j]+x[i][j+1]+x[i-2][j])/5.;
我不确定我是否完全了解依赖项的全部内容 - 是否有一种方法可以使用数组表示法对其进行矢量化,或者我是否需要以某种方式调整它来解释整个依赖项?
提前感谢您的帮助。
答案 0 :(得分:1)
假设x
和y
是完全不重叠的不同数组,则没有依赖关系。 x
永远不会更改,并且所有计算的结果仅取决于x
。没有计算取决于先前计算的结果。
该循环中使用的计算和赋值可以按任何顺序和任何并发发生。
答案 1 :(得分:1)
首先,我建议您使用brakets {}来组织代码行并更好地理解它。 其次,请查看此页面:http://www.javatutorialhub.com/java-arrays.html Thirg,总是从简单的例子开始,不要混淆。