#include
int main() {
array double a[2][2] = {2, 4,
3, 7};
array double inv[2][2];
int status;
inv = inverse(a);
printf("inverse(a) =\n%f\n", inv);
printf("inverse(a)*a =\n%f\n", inv*a);
printf("a*inverse(a) =\n%f\n", a*inv);
inv = inverse(a, &status);
if(status == 0)
printf("inverse(a, &status) = %f\n", inv);
else
printf("error: numerical error in inverse()\n");
}
inverse(a) =
3.500000 -2.000000
-1.500000 1.000000
inverse(a)*a =
1.000000 0.000000
0.000000 1.000000
a*inverse(a) =
1.000000 0.000000
-0.000000 1.000000
inverse(a, &status) = 3.500000 -2.000000
-1.500000 1.000000