code: @Override
  	public boolean checkScaling(final DoubleMatrix2D AOriginal, final DoubleMatrix1D U, final DoubleMatrix1D V){
  		
  		int c = AOriginal.columns();
  		int r = AOriginal.rows();
  		final double[] maxValueHolder = new double[]{-Double.MAX_VALUE}; 
  		
  		IntIntDoubleFunction myFunct = new IntIntDoubleFunction() {
  			@Override
  			public double apply(int i, int j, double pij) {
  				maxValueHolder[0] = Math.max(maxValueHolder[0], Math.abs(pij));
  				return pij;
  			}
  		};
  		
  		DoubleMatrix2D AScaled = ColtUtils.diagonalMatrixMult(U, AOriginal, V);
  		
  		//view A row by row
  		boolean isOk = true;
  		for (int i = 0; isOk && i < r; i++) {
  			maxValueHolder[0] = -Double.MAX_VALUE;
  			DoubleMatrix2D P = AScaled.viewPart(i, 0, 1, c);
  			P.forEachNonZero(myFunct);
  			isOk = Math.abs(1. - maxValueHolder[0]) < eps; 
  		}
  		//view A col by col
  		for (int j = 0; isOk && j < c; j++) {
  			maxValueHolder[0] = -Double.MAX_VALUE;
  			DoubleMatrix2D P = AScaled.viewPart(0, j, r, 1);
  			P.forEachNonZero(myFunct);
  			isOk = Math.abs(1. - maxValueHolder[0]) < eps;
  		}
  		return isOk;
  	}
docs: Check if the scaling algorithm returned proper results.
  Note that AOriginal cannot be only subdiagonal filled, because this check
  is for both symm and bath notsymm matrices.
  @param AOriginal the ORIGINAL (before scaling) matrix
  @param U the return of the scaling algorithm
  @param V the return of the scaling algorithm
  @param base
  @return