#include <omp.h>

#define N 10

int main (int argc, char *argv[]) {
  double a[N], b[N];
  int i, sum;
    
    
#pragma omp parallel
#pragma omp single
    for (i=0; i < N; i++)
      a[i] = 0;

/*
// This omp construct is completely eliminated
#pragma omp parallel for
    for (i=0; i < N-1; i++)
      b[i+1] = a[i+1] + 2*i;
         
// These nested omp constructs are completely eliminated
#pragma omp parallel
{ 
#pragma omp for
    for (i=0; i < N-1; i++)
      b[i+1] = a[i+1] + 2*i;
}
      
   
#pragma omp parallel for
    for (i=0; i < N; i++) {
      a[i] = 0.0;
      b[i] = a[i];
      b[i] = a[i] + b[i];
    }
    
#pragma omp parallel for
	for (i=0; i < N-1; i++) {
	  //a[i+1] = a[1+i] + 1;
	  a[i+2-1] = a[(-2*3) + 2*i - i + 7] + 1;
	  }
    
      
#pragma omp parallel for private(sum)
    for (i=0; i < N; i++)
      sum = sum + i;
      
#pragma omp parallel for 
    for (i=0; i < N; i++)
      sum = sum + i;
*/   
      
}
