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 ); } } }