/******************************************************************************* FillBufferD */ Error_t FillBufferD(double *dest, unsigned length, double value) { #ifdef __APPLE__ // Use the Accelerate framework if we have it vDSP_vfillD(&value, dest, 1, length); #else // Otherwise do it manually unsigned i = 0; const unsigned end = 4 * (length / 4); for (i = 0; i < end; i+=4) { dest[i] = value; dest[i + 1] = value; dest[i + 2] = value; dest[i + 3] = value; } for (i = end; i < length; ++i) { dest[i] = value; } #endif return NOERR; }
void JUCE_CALLTYPE FloatVectorOperations::fill (double* dest, double valueToFill, int num) noexcept { #if JUCE_USE_VDSP_FRAMEWORK vDSP_vfillD (&valueToFill, dest, 1, (size_t) num); #else JUCE_PERFORM_VEC_OP_DEST (dest[i] = valueToFill, val, JUCE_LOAD_NONE, const Mode::ParallelType val = Mode::load1 (valueToFill);) #endif }