]> git.somenet.org - pub/astra/parallel.git/blob - openmp/prefix/hillis.c
hillis is broken :(
[pub/astra/parallel.git] / openmp / prefix / hillis.c
1 /*
2  * O(nlog n) work algorithm (Hillis-Steele)
3  */
4 #include "hillis.h"
5
6 void algorithm (numtype x[], unsigned long size, unsigned int ops[]) {
7         numtype tmp[size];
8         unsigned long k;
9         unsigned long i;
10
11         printf ("hillis.\n");
12         for(k=1; k < size; k <<=1){
13 printf ("hier.%li\n", k);
14                 for(i = k; i < size; i++){
15 printf ("  da.%li\n",i);
16                         x[i] = x[i-k] + x[i];
17                 }
18                 //barrier;
19         }
20
21         /* Copy out array to in */
22 //      for (i = 0; i < size; i++){
23 //              x[i] = tmp[i+1];
24 //      }
25 }