int main() { array double complex a[2][2] = {complex(2,-3), 4, 3, 7}; // n-by-n matrix array double complex inv[2][2]; int status; inv = cinverse(a); printf("cinverse(a) =\n%f\n", inv); printf("cinverse(a)*a =\n%f\n", inv*a); printf("a*cinverse(a) =\n%f\n", a*inv); inv = cinverse(a, &status); if(status == 0) printf("cinverse(a, &status) = %f\n", inv); else printf("error: numerical error in cinverse()\n"); }
cinverse(a) = complex(0.031461,0.330337) complex(-0.017978,-0.188764) complex(-0.013483,-0.141573) complex(0.150562,0.080899) cinverse(a)*a = complex(1.000000,0.000000) complex(-0.000000,-0.000000) complex(0.000000,0.000000) complex(1.000000,0.000000) a*cinverse(a) = complex(1.000000,0.000000) complex(-0.000000,0.000000) complex(-0.000000,0.000000) complex(1.000000,-0.000000) cinverse(a, &status) = complex(0.031461,0.330337) complex(-0.017978,-0.188764) complex(-0.013483,-0.141573) complex(0.150562,0.080899)