code: public boolean hasFullRank() {
  		// if (R == null) {
  		// R = new SparseCCDoubleMatrix2D(N.U);
  		// if (rcMatrix) {
  		// R = ((SparseCCDoubleMatrix2D) R).getRowCompressed();
  		// }
  		//
  		// }
  		int mn = Math.min(m, n);
  		double mng = Math.sqrt(m * n);
  		// double threshold = ALG.property().tolerance();
  		double threshold = mng * Utils.getDoubleMachineEpsilon();
  		for (int j = 0; j < mn; j++) {
  			// if (R.getQuick(j, j) == 0){
  			double rjj = getQuick(N.U, j, j);
  			// log.debug("r(" + j + "," + j + "): " + rjj);
  			// if (rjj < Utils.getDoubleMachineEpsilon()) {
  			// return false;
  			// }
  			if (rjj < threshold) {
  				return false;
  			}
  		}
  		return true;
  	}
docs: Returns whether the matrix <tt>A</tt> has full rank.
  NOTE: even when rescaled is used, the response does not change
  @return true if <tt>R</tt>, and hence <tt>A</tt>, has full rank.