which curand_normal function to use with single precision (float)

When running on single precision it is possible to generate standard normal distribution random numbers though the following calls:

float randn = curand_normal(curandState_t *state) or
float randn = (float) curand_normal_double(curandState_t *state)

These functions generate a different set of normally distributed random numbers even though the seed provided is exactly the same.
Apparently these two functions use different algorithms.

Q1: Which of the above calls is better to use and why?