Added optional suppress output (for very large matrix)
Added documentation, added timer & suppress, freed variables, cleaned up
Renamed file, updated errors