code: public static boolean bidiagOuterBlocks( final int blockLength ,
                                               final DSubmatrixD1 A ,
                                               final double gammasU[],
                                               final double gammasV[])
      {
  //        System.out.println("---------- Orig");
  //        A.original.print();
  
          int width = Math.min(blockLength,A.col1-A.col0);
          int height = Math.min(blockLength,A.row1-A.row0);
  
          int min = Math.min(width,height);
  
          for( int i = 0; i < min; i++ ) {
              //--- Apply reflector to the column
  
              // compute the householder vector
              if (!computeHouseHolderCol(blockLength, A, gammasU, i))
                  return false;
  
              // apply to rest of the columns in the column block
              rank1UpdateMultR_Col(blockLength,A,i,gammasU[A.col0+i]);
  
              // apply to the top row block
              rank1UpdateMultR_TopRow(blockLength,A,i,gammasU[A.col0+i]);
  
              System.out.println("After column stuff");
              A.original.print();
  
              //-- Apply reflector to the row
              if(!computeHouseHolderRow(blockLength,A,gammasV,i))
                  return false;
              
              // apply to rest of the rows in the row block
              rank1UpdateMultL_Row(blockLength,A,i,i+1,gammasV[A.row0+i]);
  
              System.out.println("After update row");
              A.original.print();
  
              // apply to the left column block
              // TODO THIS WON'T WORK!!!!!!!!!!!!!
              // Needs the whole matrix to have been updated by the left reflector to compute the correct solution
  //            rank1UpdateMultL_LeftCol(blockLength,A,i,i+1,gammasV[A.row0+i]);
  
              System.out.println("After row stuff");
              A.original.print();
          }
  
          return true;
      }
docs: Performs a standard bidiagonal decomposition just on the outer blocks of the provided matrix
  
  @param blockLength
  @param A
  @param gammasU