Paul Bourke has some useful notes here.
This is a useful test sequence to confirm cross correlation is working. It is from the numpy.correlate function documentation.
{ 0, 1, 0.5 } { 1, 2, 3 } = { 0.5, 2, 3.5, 3, 0 }
for(int nDelay = -nNumSamp + 1; nDelay < nNumSamp; nDelay++)
{
float fSum = 0;
for(int i = 0; i < nNumSamp; i++)
{
int j = nDelay + i;
if(j < 0 || j >= nNumSamp)
{
continue;
}
fSum += pfIn0[i] * pfIn1[j];
}
pfOut[nDelay + nNumSamp] = fSum;
}