#include #include "mm_simple.h" int main (int argc, char *argv[]) { double a[4] = {1, 2, 3, 4}; double b[4] = {5, 6, 7, 8}; double c[4]; mm_simple(2, 2, 2, a, b, c); printf("mm_f c={%f %f %f %f}\n", c[0], c[1], c[2], c[3]); #define A(i,j) (a[(i)+(j)*2]) #define B(i,j) (b[(i)+(j)*2]) #define C(i,j) (c[(i)+(j)*2]) printf("expect c={%f %f %f %f}\n", A(0,0)*B(0,0)+A(0,1)*B(1,0), A(1,0)*B(0,0)+A(1,1)*B(1,0), A(0,0)*B(0,1)+A(0,1)*B(1,1), A(1,0)*B(0,1)+A(1,1)*B(1,1) ); assert(C(0,0)==A(0,0)*B(0,0)+A(0,1)*B(1,0)); assert(C(1,0)==A(1,0)*B(0,0)+A(1,1)*B(1,0)); assert(C(0,1)==A(0,0)*B(0,1)+A(0,1)*B(1,1)); assert(C(1,1)==A(1,0)*B(0,1)+A(1,1)*B(1,1)); return 0; }