#include extern void MatrixVectorMult(double out[], double A[], double in[], int m, int n); int main(int argc, char ** argv) { double A[8][8]; double u[8], v[8]; int i, j; A[0][0] = 11; A[0][1] = 12; A[0][2] = 0; A[0][3] = 14; A[0][4] = 0; A[0][5] = 0; A[0][6] = 0; A[0][7] = 0; A[1][0] = 0; A[1][1] = 22; A[1][2] = 23; A[1][3] = 0; A[1][4] = 25; A[1][5] = 0; A[1][6] = 0; A[1][7] = 0; A[2][0] = 31; A[2][1] = 0; A[2][2] = 33; A[2][3] = 34; A[2][4] = 0; A[2][5] = 0; A[2][6] = 0; A[2][7] = 0; A[3][0] = 0; A[3][1] = 42; A[3][2] = 0; A[3][3] = 0; A[3][4] = 45; A[3][5] = 46; A[3][6] = 0; A[3][7] = 0; A[4][0] = 0; A[4][1] = 0; A[4][2] = 0; A[4][3] = 0; A[4][4] = 55; A[4][5] = 0; A[4][6] = 0; A[4][7] = 0; A[5][0] = 0; A[5][1] = 0; A[5][2] = 0; A[5][3] = 0; A[5][4] = 65; A[5][5] = 66; A[5][6] = 67; A[5][7] = 0; A[6][0] = 0; A[6][1] = 0; A[6][2] = 0; A[6][3] = 0; A[6][4] = 75; A[6][5] = 0; A[6][6] = 77; A[6][7] = 78; A[7][0] = 0; A[7][1] = 0; A[7][2] = 0; A[7][3] = 0; A[7][4] = 0; A[7][5] = 0; A[7][6] = 87; A[7][7] = 88; u[0] = 3; u[1] = 5; u[2] = 2; u[3] = 1; u[4] = 0; u[5] = 1; u[6] = 2; u[7] = 4; MatrixVectorMult(v, (double *)A, u, 8, 8); for (i = 0; i < 8; i = i + 1) { for (j = 0; j < 8; j = j + 1) printf("%4.1lf ", A[i][j]); printf(" %4.1lf", u[i]); printf(" %4.1lf\n", v[i]); } }