function [Q, R] = GSclasic(A)
[m, n] = size(A);
Q = zeros(m, n);
R = zeros(n);
for j = 1 : n
    Q(:, j) = A(:, j);
    for k = 1 : j - 1
        R(k, j) = Q(:, k)' * A(:, j);
    end
    Q(:, j) = Q(:, j) - Q(:, 1 : j - 1) * R(1 : j - 1, j);
    R(j, j) = norm(Q(:, j));
    Q(:, j) = Q(:, j) / R(j, j);
end
