One of the many functions that the Accelerate framework provides is vDSP_vspdp
, which you can use like this:
float * singleBuf;
float * doubleBuf = malloc(nElements * sizeof(double));
vDSP_vspdp(singleBuf, 1, doubleBuf, 1, nElements);
If you're doing any kind of DSP programming on a Mac, you could save tons of time and gain tons of efficiency by learning about vDSP, CBLAS, and other Accelerate framework APIs. These APIs tend to go through the processor's vector unit (SSE, etc) and know about memory hinting, so they tend to be much more efficient than what you'd typically code by hand.