/* gson.mac */ load(eigeni)$ /* Gram-Schmidt's Method A : (m,n)-matrix (m >= n), gso(A) : orthogonalizes A, gson(A) : orthonormalizes A */ gso(A) := block([m,n,i,B,C,D], m : length(A), B : transpose(A), n : length(B), C : gramschmidt(B), D : zeromatrix(n, m), for i:1 thru n do D[i] : C[i], transpose(D) )$ gson(A) := block([m,n,i,B,C,D], m : length(A), B : transpose(A), n : length(B), C : gramschmidt(B), D : zeromatrix(n, m), for i:1 thru n do D[i] : unitvector(C[i]), transpose(D) )$