Example #1
0
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;

}
Example #2
0
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;
}