import numpy as np

# Calculates the QR decomposition of A using Givens rotations.
def QRGivens(A):
    m, n = A.shape
    R = A.copy()
    Q = np.eye(m)

    return Q, R

if __name__ == "__main__":
    A = np.array([[2, 1, 1], [-1, -1, -3], [2, 3, 3], [1, 1, -1]]).astype(float)

    # To generate random matricies one can use functions from the np.random
    # module.

    print("Hello, World!")
