int getMinPeriod(int input[][MAX_LENGTH], int row, int col[]){ int i; int flag = 0; int len; int j = 0; int k; int period = 0; int periodArray[row]; for (i = 0; i < row; ++i) { len = col[i] - 1; for (j = 1; j <= len; ++j) { if (len % j == 0) { flag = 1; } for (k = j; k < len; ++k) { if (input[i][k] != input[i][k % j]) { flag = 0; break; } } if (flag) { periodArray[i] = j; printf("min period is: %d\n", j); break; } } } period = getLCM(periodArray, row); if (len == period ) { return 0; } return period; }
int updateBaseTime() { int ret; struct __client *pClient; pClient = g_Resource1.next; ret = pClient->uiReqInterval; while(pClient) { if((pClient->next!=NULL) && (pClient->next->uiReqInterval)) { ret = getLCM(ret, pClient->next->uiReqInterval); } pClient = pClient->next; } struct timeval tTemp; setTimeValue(&tTemp, ret/1000, (ret%1000)*1000); addTimeValue(&(g_Resource1.tBaseTime), g_Resource1.tBaseTime, tTemp); //printf("ret=%d\n", ret); return ret; }