int main(){ char v[SIZE] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'}; show_vector(v, SIZE); return 0; }
void test_basic_vector_op(void) { /******************************/ /* Test the vector operations */ /******************************/ /*create two vectors and show them*/ int vector_length = 5; double vector_a[5] = {2.5, -10.9, 15.8, 12.2, 7.9}; double vector_b[5] = {2.5, 0.2, 21.33, 70.1, -0.2}; double vector_c[5]; double result = 0.0; /*seed the random generator*/ srand(time(NULL)); printf("The two vectors a and b\n"); show_vector(vector_a, vector_length); show_vector(vector_b, vector_length); /*vector addition*/ printf("c = a + b\n"); /*copy a*/ memcpy(vector_c, vector_a, vector_length*sizeof(double)); /*compute*/ vect_add(vector_c, vector_b, vector_length); /*show expected and obtained results*/ printf("Expected: 5.0000 -10.7000 37.1300 82.3000 7.7000\n"); printf("Result: "); show_vector(vector_c, vector_length); /*vector subtraction*/ printf("c = a - b\n"); /*copy a*/ memcpy(vector_c, vector_a, vector_length*sizeof(double)); /*compute*/ vect_sub(vector_c, vector_b, vector_length); /*show expected and obtained results*/ printf("Expected: 0.0000 -11.1000 -5.5300 -57.9000 8.1000\n"); printf("Result: "); show_vector(vector_c, vector_length); /*vector scalar multiplication*/ printf("c = a * 5\n"); /*copy a*/ memcpy(vector_c, vector_a, vector_length*sizeof(double)); /*compute*/ vect_scalar_multiply(vector_c, 5, vector_length); /*show expected and obtained results*/ printf("Expected: 12.5000 -54.5000 79.0000 61.0000 39.5000\n"); printf("Result: "); show_vector(vector_c, vector_length); /*vector dot product*/ printf("c = a .* b\n"); /*compute*/ result = vect_dot_product(vector_a, vector_b, vector_length); /*show expected and obtained results*/ printf("Expected: 1194.72\n"); printf("Result: %2.2f\n",result); /*vector cross product*/ /*To be completed*/ /*vector norm*/ printf("c = |a|\n"); /*compute*/ result = vect_norm(vector_a, vector_length); /*show expected and obtained results*/ printf("Expected: 24.2064\n"); printf("Result: %2.4f\n",result); /*vector rand unit*/ printf("c is a random vector\n"); printf("|c| == 1\n"); /*compute*/ vect_rand_unit(vector_c, vector_length); /*show expected and obtained results*/ printf("The vector: "); show_vector(vector_c, vector_length); result = vect_norm(vector_c, vector_length); printf("Expected norm: 1.0000\n"); printf("Obtained norm: %2.4f\n",result); }