计划的目的

时间:2013-02-22 05:01:31

标签: c++ variables input floating-point

我需要为项目编译一些代码并且我遇到了很多错误,不是因为代码编写错误,而是我认为在尝试编译之前我应该​​替换一些变量。实际代码有点长,因为它是为并行计算而设计的,但下面是一个没有并行性的更简单的版本。这个程序的目的是什么以及输入变量是什么:

int main(int argc, char *argv[]) {
  int n = ...;
  float *x, *y;
  x = new float[n+1];
  y = new float[n+1];

  ... // fill x, y

  // do computation
  float e = 0;
  for (int i=1; i<n; ++i) {
   x[i] += ( y[i+1] + y[i-1] )*.5;
   e += y[i] * y[i];
  }

  ... // output x, e

  delete[] x, y;
  return 0;
} 

1 个答案:

答案 0 :(得分:1)

行。似乎代码主要是例如概念证明。 我猜Parallel For是关于它的特殊“ForEach”函数,以及一些数据网格......

我修改了网站上的一个样本(如果有人想要一个更具可读性的例子)。 取自Here

int main(int argc, char *argv[]) {

    int Repeat = 100000;        // Will perform the computation 100,000 times.

    Grid1 *Grd = new Grid1(0, Repeat+1);
    DistArray X(Grd), Y(Grd);   // Some data grid arrays (used for the computations)


    // Set X and Y...
    ForEach(int i, it,
    X(i) = 0;
    Y(i) = 1*i; )


    Grid1IteratorSub it(1, Repeat, Grd);

    float E = 0;    // One of the return values

    // Do the computations:
    ForEach(int i, it,
    X(i) += ( Y(i+1) + Y(i-1) )*.5;
    E += sqr( Y(i) ); )

    // Output the modified data:
    cout << "X: " << X;
    cout << "E: " << E;

    return 0;

}

**看到Parallel For

后编辑