Able to learn and perform affine transformations properly for rotation and translation. There are some errors coming in while performing rotation, and they appear majorly in scaling. These might be due to discretization. On a side note, to check whether the set of column vectors are linearly independent or not, using just rank() function is not enough. Right now I am first calcuating the reduced row echelon form (rref) of the matrix and then calculate the rank() of the matrix.