Moved the definition of gaussian_elimination into a separate moduley