Parent directory
Makefile
mult-ijk.c
mult-ikj.c
mult-kji.c
sum1.c
sum2.c
CC=gcc
CFLAGS=-g -Wall -O0
.PHONY: default
default: sum1 sum2 mult-ijk mult-kji mult-ikj
sum1:
sum2:
mult-ijk:
mult-kji:
mult-ikj:
.PHONY: clean
clean:
rm -f *.o sum1 sum2 mult-ijk mult-kji mult-ikj
# remove debug symbols directory generated in macOS
rm -rf *.dSYM
.PHONY: all
all: clean default
#include <stdio.h>
#define N 2000
double a[N][N] = {{0}};
double b[N][N] = {{0}};
double c[N][N] = {{0}};
int main(int argc, char **argv) {
double sum = 0;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
sum = 0;
for (int k = 0; k < N; k++) {
sum += a[i][k] * b[k][j];
}
c[i][j] += sum;
}
}
}
#include <stdio.h>
#define N 2000
double a[N][N] = {{0}};
double b[N][N] = {{0}};
double c[N][N] = {{0}};
int main(int argc, char **argv) {
double r = 0;
for (int i = 0; i < N; i++) {
for (int k = 0; k < N; k++) {
r = a[i][k];
for (int j = 0; j < N; j++) {
c[i][j] += r * b[k][j];
}
}
}
}
#include <stdio.h>
#define N 2000
double a[N][N] = {{0}};
double b[N][N] = {{0}};
double c[N][N] = {{0}};
int main(int argc, char **argv) {
double r = 0;
for (int k = 0; k < N; k++) {
for (int j = 0; j < N; j++) {
r = b[k][j];
for (int i = 0; i < N; i++) {
c[i][j] += a[i][k] * r;
}
}
}
}
#include <stdio.h>
#define M 4096
#define N 4096
double a[M][N] = {{0}};
int main(int argc, char **argv) {
double sum = 0;
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
sum += a[i][j];
}
}
printf("sum = %g\n", sum);
return 0;
}
#include <stdio.h>
#define M 4096
#define N 4096
double a[M][N] = {{0}};
int main(int argc, char **argv) {
double sum = 0;
for (int j = 0; j < N; j++) {
for (int i = 0; i < M; i++) {
sum += a[i][j];
}
}
printf("sum = %g\n", sum);
return 0;
}