/* * vector1 vector2 * [16 5 10 17 31 ] . [ 5 9 4 28 24 ] = 1385 * * vector3 vector4 * [ 0 5 0 0 31 ] . [ 5 0 0 0 24 ] = 744 */ #include #include #define MAX_SIZE 5 int rand(void); int a[MAX_SIZE], b[MAX_SIZE]; void print_vector(int *v), init_vector(int *v, char *s); main() { FILE *fptr; int i; init_vector(a, "vector1.data"); init_vector(b, "vector2.data"); print_vector(a); print_vector(b); printf("Dot product = %d\n", dotproduct(MAX_SIZE, a, b)); printf("Dot product = %d\n", _Gdotproduct_1_0(b)); init_vector(a, "vector3.data"); init_vector(b, "vector4.data"); print_vector(a); print_vector(b); printf("Dot product = %d\n", dotproduct(MAX_SIZE, a, b)); printf("Dot product = %d\n", _Gdotproduct_2_0(b)); printf("Dot product = %d\n", _Gdotproduct2_1_0(b)); } void init_vector(int v[], char *s) { FILE *fopen(), *fptr; int i; fptr = fopen(s, "r"); for(i = 0; i < MAX_SIZE; i++) { fscanf(fptr, "%d ", &v[i]); } fclose(fptr); } void print_vector(int v[]) { int i; printf("["); for(i = 0; i < MAX_SIZE; i++) printf("%2d ", v[i]); printf("]\n"); } int dotproduct(int size, int u[], int v[]) { int i; int res; res = 0; for (i=0; i