int main() {
array double complex a[2][4] = {1, 5, -7, 4,
3, 3, 2, -13}; /* a[m][n] */
array double complex a1[2][4] = {complex(1,2), 5, -7, 4,
3, 3, 2, -13}; /* a[m][n] */
int m = 2, n = 4;
array double complex q[m][m]; // in the case of m=n
array double complex r2[m][n] ;
qrdecomp(a2, q2, r2);
printf("q2^H*q2 = \n%f\n", conj(transpose(q2))*q2);
printf("q2 = \n%f\n", q2);
printf("r2 = \n%f\n", r2);
printf("q2*r2 = \n%f\n", q2*r2);
}