22 static const int GANGWIDTH{4};
23 int testSizeForGangs = testSize - testSize % GANGWIDTH;
29 for (; i < testSizeForGangs; i += GANGWIDTH)
31 if (threadShouldExit())
35 cross = cross + candidatePointer[i] * referencePointer[i];
36 cross = cross + candidatePointer[i + 1] * referencePointer[i + 1];
37 cross = cross + candidatePointer[i + 2] * referencePointer[i + 2];
38 cross = cross + candidatePointer[i + 3] * referencePointer[i + 3];
41 for (; i < testSize; i++)
43 if (threadShouldExit())
47 cross = cross + candidatePointer[i] * referencePointer[i];
49 return cross /
static_cast<float>(testSize);
58 const float* candidatePointer = getReadPointer(0) + centerIndex;
59 int indexMin = centerIndex - testSize;
64 int indexMax = centerIndex + testSize;
65 if (indexMax >= getNumSamples())
69 const float* referencePointer = getReadPointer(0) + indexMin;
71 return crossCorrelate(referencePointer, candidatePointer, testSize);
float crossCorrelate(const float *referencePointer, const float *candidatePointer, const int testSize)
crossCorrelate - Perform a cross-correlation function
Definition KrotosAudioBufferDSPCorrelation.cpp:18
float autoCorrelateCentred(int centerIndex, int testSize)
autoCorrelateCentred - Autocorrelate both sides of supplied index
Definition KrotosAudioBufferDSPCorrelation.cpp:52
Definition AirAbsorptionFilter.cpp:2