//Normal version of the Ehrlich-Aberth method
+__device__
cuDoubleComplex FirstH_EA(int i, cuDoubleComplex *Z) {
cuDoubleComplex result;
//Log Exp version of the Ehrlich-Aberth method
+__device__
cuDoubleComplex NewH_EA(int i, cuDoubleComplex *Z) {
cuDoubleComplex result;
//kernels to update a root i
+__global__
cuDoubleComplex H_EA(int i, cuDoubleComplex *Z) {
cuDoubleComplex c;
//if the root needs to be updated
Copy $Z$ from GPU to CPU\;
\end{algorithm}
-Listing~\ref{lst:01} shows the second kernel code. As can be seen this
+Listing~\ref{lst:01} shows the a simplified version of second kernel
+code (some parameters in the kernels have been simplified in order to
+increase the readability). As can be seen this
kernel calls multiple kernels, all the kernals for complex numbers and
kernels for the evaluation of a polynomial are not detailed.