code: public static boolean canSwapRows(Matrix matrix, int row1, int row2, int col1) {
  		boolean response = true;
  		for (int col = 0; col < col1; ++col) {
  			if (0 == matrix.getAsDouble(row1, col)) {
  				if (0 != matrix.getAsDouble(row2, col)) {
  					response = false;
  					break;
  				}
  			}
  		}
  		return response;
  	}
docs: Check to see if a non-zero and a zero value in the rows leading up to
  this column can be swapped. This is part of the bandwidth reduction
  algorithm.
  
  @param matrix
  the matrix to check
  @param row1
  the first row
  @param row2
  the second row
  @param col1
  the column
  @return true if the rows can be swapped