typedef struct { double r, i; } doublecomplex; #define VEC(T,A) int A##n, T* A##p #define MAT(T,A) int A##r, int A##c, int A##Xr, int A##Xc, T* A##p #define AT(m,i,j) (m##p[(i)*m##Xr + (j)*m##Xc]) #define TRAV(m,i,j) int i,j; for (i=0;i