function Q=gram1(A,B) [m,n]=size(B); if n==1 then Q=B/(sqrt(B'*A*B)); else Q=gram1(A,B(:,1:(n-1))); C=B(:,n)-Q*(Q'*A*B(:,n)); C=C/(sqrt(C'*A*C)); Q=[Q C]; end endfunction