diff options
Diffstat (limited to 'polly/www/experiments/matmul/matmul.c')
| -rw-r--r-- | polly/www/experiments/matmul/matmul.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/polly/www/experiments/matmul/matmul.c b/polly/www/experiments/matmul/matmul.c new file mode 100644 index 00000000000..edb2455ae8f --- /dev/null +++ b/polly/www/experiments/matmul/matmul.c @@ -0,0 +1,52 @@ +#include <stdio.h> + +#define N 1536 +float A[N][N]; +float B[N][N]; +float C[N][N]; + +void init_array() +{ + int i, j; + + for (i=0; i<N; i++) { + for (j=0; j<N; j++) { + A[i][j] = (1+(i*j)%1024)/2.0; + B[i][j] = (1+(i*j)%1024)/2.0; + } + } +} + +void print_array() +{ + int i, j; + + for (i=0; i<N; i++) { + for (j=0; j<N; j++) { + fprintf(stdout, "%lf ", C[i][j]); + if (j%80 == 79) fprintf(stdout, "\n"); + } + fprintf(stdout, "\n"); + } +} + +int main() +{ + int i, j, k; + double t_start, t_end; + + init_array(); + + for(i=0; i<N; i++) { + for(j=0; j<N; j++) { + C[i][j] = 0; + for(k=0; k<N; k++) + C[i][j] = C[i][j] + A[i][k] * B[k][j]; + } + } + +#ifdef TEST + print_array(); +#endif + return 0; +} |

