code: private void pushRight( int row ) {
          if( isOffZero(row))
              return;
  
  //        B = createB();
  //        B.print();
          rotatorPushRight(row);
          int end = N-2-row;
          for( int i = 0; i < end && bulge != 0; i++ ) {
              rotatorPushRight2(row,i+2);
          }
  //        }
      }
docs: If there is a zero on the diagonal element, the off diagonal element needs pushed
  off so that all the algorithms assumptions are two and so that it can split the matrix.