#if USE_MOBILITY_TRACKING if (globResults->mobilityWindowLength > 0) { int var; int first, last; int ham = 0; int *firstPtr, *lastPtr; first = globResults->windowStart; firstPtr = globResults->mobilityWindow + first * (varNum+1); if (globResults->currentWindowLength < globResults->mobilityWindowLength - 1) { for (var = 1; var <= varNum; var++) { *firstPtr = x[var]; firstPtr++; } globResults->currentWindowLength++; } else { last = (first + globResults->mobilityWindowLength + 1) % globResults->mobilityWindowLength; lastPtr = globResults->mobilityWindow + last * (varNum+1); for (var = 1; var <= varNum; var++) { *firstPtr = x[var]; if (*firstPtr != *lastPtr) ham++; firstPtr++; lastPtr++; } globResults->sumMobility += ham; } globResults->windowStart = (globResults->windowStart + 1) % globResults->mobilityWindowLength; } #endif