Esempio n. 1
0
void fillCrowdingDistance(int count, int frontSize, list *elite)
{
	int *distance;
	list *temp;
	int i, j;
	int missing = NP - count;
	while(missing<frontSize)
	{
		assignCrowdingDistanceList(elite->child, frontSize);
		distance = (int *)calloc(frontSize,sizeof(int));
		temp = elite->child;
		for(j=0; j<frontSize; j++)
		{
			distance[j] = temp->index;
			temp = temp->child;
		}
		quickSortDistance(distance, frontSize);
		deleteInd(elite,distance[0]);
		frontSize--;
		if(missing<frontSize)
		{
			free(distance);
		}
	}
	for(i=count, j=frontSize-1; i<NP; i++, j--)
	{
		copyIndividual(distance[j], i);
	}
	free(distance);
	return;
}
// -----------------------------------------------------------------------------
// CSensorDataCompensatorInitializer::InitCfw()
//
// -----------------------------------------------------------------------------
//
void CSensorDataCompensatorInitializer::InitCfw()
    {
    FUNC_LOG;

    // Setup delete indicator to detect listener deletion from controller and try to create
    TBool deleteInd( EFalse );
    iDeleteInd = &deleteInd;
    TRAPD( err, iPlg.InitCfwL() );
    ERROR( err, "CSensorDataCompensatorInitializer::InitCfw() - InitCfwL fail" );
    if ( !deleteInd )
        {
        iDeleteInd = NULL; // Reset delete indicator
        if ( err == KErrNone )
            {
            // Stop retry callback on success
            delete iPeriodic;
            iPeriodic = NULL;
            }
        else if ( !iPeriodic )
            {
            // Start retry callback on error
            iPeriodic = CPeriodic::New( CActive::EPriorityStandard );
            if( iPeriodic )
                {
                iPeriodic->Start( KRetryInterval, KRetryInterval, TCallBack( RetryCB, this ) );
                }
            else
                {
                INFO( "CSensorDataCompensatorInitializer::InitCfw() - Retry out of memory" );
                }
            }
        if ( iPeriodic )
            {
            INFO_1( "CSensorDataCompensatorInitializer::InitCfw() - Retry after %d us",
                KRetryInterval );
            }
        }
    }