range — range (span) of A^k
[X,dim]=range(A,k)
Computation of Range A^k ; the first dim rows of X span the
range of A^k. The last rows of X span the
orthogonal complement of the range. X*X' is the Identity matrix
A=rand(4,2)*rand(2,4); // 4 column vectors, 2 independent.
[X,dim]=range(A,1);dim // compute the range
y1=A*rand(4,1); //a vector which is in the range of A
y2=rand(4,1); //a vector which is not in the range of A
norm(X(dim+1:$,:)*y1) //the last entries are zeros, y1 is in the range of A
norm(X(dim+1:$,:)*y2) //the last entries are not zeros
I=X(1:dim,:)' //I is a basis of the range
coeffs=X(1:dim,:)*y1 // components of y1 relative to the I basis
norm(I*coeffs-y1) //check