#define X(i,j) x[i][j] #define Y(i,j) y[i][j] #define Z(i,j) z[i][j] void matmul( x, y, z, m, n, p) /* x = y * z */ double *x[]; double *y[]; double *z[]; int m, n, p; { int i, j, k; for( i = 0; i < m; i++) for( j = 0; j < p; j++) { X(i,j) = 0; for( k = 0; k < n; k++) X(i,j) += Y(i,k) * Z(k,j); } }