aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c/omp_matvec.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c/omp_matvec.c')
-rw-r--r--gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c/omp_matvec.c72
1 files changed, 0 insertions, 72 deletions
diff --git a/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c/omp_matvec.c b/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c/omp_matvec.c
deleted file mode 100644
index 12b8c6896..000000000
--- a/gcc-4.2.1-5666.3/libgomp/testsuite/libgomp.c/omp_matvec.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/******************************************************************************
-* OpenMP Example - Matrix-vector multiplication - C/C++ Version
-* FILE: omp_matvec.c
-* DESCRIPTION:
-* This example multiplies all row i elements of matrix A with vector
-* element b(i) and stores the summed products in vector c(i). A total is
-* maintained for the entire matrix. Performed by using the OpenMP loop
-* work-sharing construct. The update of the shared global total is
-* serialized by using the OpenMP critical directive.
-* SOURCE: Blaise Barney 5/99
-* LAST REVISED:
-******************************************************************************/
-
-#include <omp.h>
-#include <stdio.h>
-#define SIZE 10
-
-
-main ()
-{
-
-float A[SIZE][SIZE], b[SIZE], c[SIZE], total;
-int i, j, tid;
-
-/* Initializations */
-total = 0.0;
-for (i=0; i < SIZE; i++)
- {
- for (j=0; j < SIZE; j++)
- A[i][j] = (j+1) * 1.0;
- b[i] = 1.0 * (i+1);
- c[i] = 0.0;
- }
-printf("\nStarting values of matrix A and vector b:\n");
-for (i=0; i < SIZE; i++)
- {
- printf(" A[%d]= ",i);
- for (j=0; j < SIZE; j++)
- printf("%.1f ",A[i][j]);
- printf(" b[%d]= %.1f\n",i,b[i]);
- }
-printf("\nResults by thread/row:\n");
-
-/* Create a team of threads and scope variables */
-#pragma omp parallel shared(A,b,c,total) private(tid,i)
- {
- tid = omp_get_thread_num();
-
-/* Loop work-sharing construct - distribute rows of matrix */
-#pragma omp for private(j)
- for (i=0; i < SIZE; i++)
- {
- for (j=0; j < SIZE; j++)
- c[i] += (A[i][j] * b[i]);
-
- /* Update and display of running total must be serialized */
- #pragma omp critical
- {
- total = total + c[i];
- printf(" thread %d did row %d\t c[%d]=%.2f\t",tid,i,i,c[i]);
- printf("Running total= %.2f\n",total);
- }
-
- } /* end of parallel i loop */
-
- } /* end of parallel construct */
-
-printf("\nMatrix-vector total - sum of all c[] = %.2f\n\n",total);
-
- return 0;
-}
-