int main() {
array double a[2][2] = {2, 4,
3, 7};
/* a2 is an ill-condition matrix */
array double a2[2][2] = {2, 4,
2.001, 4.0001};
/* singular matrix */
array float b[3][3] = {2, 4, 4,
3, 7, 3,
3, 7, 3};
array double complex z[2][2] = {2, complex(4, 3),
3, 7};
/* a2 is an ill-condition matrix */
array double complex z2[2][2] = {2, complex(4, 3),
2.001, complex(4.0001,3)};
array complex z3[2][2] = {2, complex(4, 3),
3, 7};
int r;
r = rank(a);
printf("rank(a) = %d\n", r);
r = rank(a2);
printf("rank(a2) = %d\n", r);
r = rank(b);
printf("rank(b) = %d\n", r);
r = rank(z);
printf("rank(z) = %d\n", r);
r = rank(z2);
printf("rank(z2) = %d\n", r);
r = rank(z3);
printf("rank(z3) = %d\n", r);
}
rank(a) = 2
rank(a2) = 2
rank(b) = 2
rank(z) = 2
rank(z2) = 2
rank(z3) = 2