-the normal mode of the EA method but also with the
-logarithm-exponential one. Then the error is computed with a final
-kernel (line 7). Finally when the EA method has converged, the roots
-are transferred from the GPU to the CPU.
-
+the normal mode of the EA method as in Eq.~\ref{Eq:EA1} but also with the logarithm-exponential one as in Eq.(~\ref{Log_H1},~\ref{Log_H2}). The last kernel checks the convergence of the roots after each update of $Z^{k}$, according to formula Eq.~\ref{eq:Aberth-Conv-Cond} line (7). We used the functions of the CUBLAS Library (CUDA Basic Linear Algebra Subroutines) to implement this kernel.
+
+The algorithm terminates its computations when all the roots have
+converged.}
+ %The code is organized as kernels which are parts of codes that are run
+%on GPU devices. Algorithm~\ref{alg1-cuda} describes the CUDA
+%implementation of the Ehrlich-Aberth on a GPU. This algorithms starts
+%by initializing the polynomial and its derivative (line 1). The
+%initialization of the roots is performed (line 2). Data are transferred
+%%from the CPU to the GPU (after the allocation of the required memory on
+%the GPU) (line 3). Then at each iteration, if the error is greater
+%%than the threshold, the following operations are performed. The previous
+%roots are saved using a kernel (line 5). Then the new roots with the
+%new iterations are computed using the EA method with a Gauss-Seidel
+%iteration mode in order to use the latest updated roots (line
+%6). This improves the convergence. This kernel is, in practice, very
+%long since it performs all the operations with complex numbers with
+%the normal mode of the EA method but also with the
+%logarithm-exponential one. Then the error is computed with a final
+%kernel (line 7). Finally when the EA method has converged, the roots
+%are transferred from the GPU to the CPU.