anchor.diff:         col_sizes(1) = ABlocks(1,ind)%columns
          col_sizes(2) = ABlocks(2,ind+1)%columns
   
  -       CALL ComposeDenseMatrix(ABlocks(1:2,ind:ind+1), 2, 2, TempLeft(II))
  -
  -       CALL StartTimer("GEMM Col")
  -       CALL MultiplyDense(TempLeft(II), VList(II), TempRight(II))
  -       CALL StopTimer("GEMM Col")
  -
  -       CALL SplitDenseMatrix(TempRight(II), 2, 2, ABlocks(1:2,ind:ind+1), &
  +       CALL ComposeDenseMatrix(ABlocks(1:2,ind:ind+1), 2, 2, ColLeft(II))
  +       CALL MultiplyDense(ColLeft(II), VList(II), ColRight(II))
  +       CALL SplitDenseMatrix(ColRight(II), 2, 2, ABlocks(1:2,ind:ind+1), &
               & block_size_row_in=row_sizes, block_size_column_in=col_sizes)
  -
  -       CALL DestructDenseMatrix(TempLeft(II))
  -       CALL DestructDenseMatrix(TempRight(II))
       END DO
       !$OMP END DO
       !$OMP END PARALLEL
   
       CALL DestructDenseMatrix(TempMat)
   
  -    DEALLOCATE(TempLeft)
  -    DEALLOCATE(TempRight)
  -
     END SUBROUTINE ApplyToColumns
   END MODULE JacobiEigenSolverModule
  
positive.code: 
         !! Rotation A
         CALL StartTimer("Rotate A")
         CALL ApplyToColumns(VList, ABlocks, jdata)
         CALL StopTimer("Rotate A")
  
         !! Swap Blocks
  
negative.code:     CALL DestructDenseMatrix(TargetVT)
      DO II = 1, jdata%num_processes
         CALL DestructDenseMatrix(VList(II))
         CALL DestructDenseMatrix(ColLeft(II))
         CALL DestructDenseMatrix(ColRight(II))
      END DO
      CALL DestructDenseMatrix(RowLeft)
      CALL DestructDenseMatrix(RowRight)
  
      DEALLOCATE(ColLeft)
      DEALLOCATE(ColRight)
  
    END SUBROUTINE JacobiSweep
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  