#define M 3
#define N 3
int main() {
/* non-singular matrix rank(a) == 3 */
array double a[M][N] = {1, 2, 3,
5, 5, 6,
7, 8, 9};
int r = rank(a);
if(r == 3) {
printf("rank(a) is 3, empty null space\n");
return 0;
}
else {
array double null[M][N-r];
nullspace(a, null);
printf("rank(a) = %d\n", r);
printf("null from nullspace(a, null) = \n%f\n", null);
printf("transpose(null)*null = \n%f\n", transpose(null)*null);
}
}
rank(a) is 3, empty null space