any reason to make this not follow the same pattern as in LU (i.e. only doing division if matlist[i][j] is not zero)? Also, we are only saving n-operations in a O(n^2) operation to do this rather than just return L of the LU result. So perhaps this is not needed. If someone wants L they can just discard U. The same would go for the uppertriangular routine.