 
     for (; index < n; index += stride) {
         cuDoubleComplex c = x[incx * index];
-        double e = expf(c.x);
-        y[incy * index] = make_cuDoubleComplex(e * cosf(c.y), e * sinf(c.y));
+        double e = exp(c.x);
+        y[incy * index] = make_cuDoubleComplex(e * cos(c.y), e * sin(c.y));
     }
 }
 


    for (; index < n; index += stride) {
        cuDoubleComplex c = x[incx * index];
        double e = expf(c.x);
        y[incy * index] = cuCmul(alpha, make_cuDoubleComplex(e * cosf(c.y), e * sinf(c.y)));
    }
}


    auto stride = blockDim.x * gridDim.x;

    for (; index < n; index += stride) {
        y[incy * index] = alpha * exp(x[incx * index]);
    }
}

