void freeModel(_md) { size_t predNum, funcNum, axNum, taskNum, factNum, restrNum, typeNum, srcNum, errNum; freeServData(modelPtr); /* Predicates */ forVect(predNum, preds_m) freeFunc(getPredPtr(predNum)); /* Functions */ forVect(funcNum, funcs_m) freeFunc(getFuncPtr(funcNum)); /* Axioms */ forVect(axNum, axioms_m) freeAxiom(getAxPtr(axNum)); /* Tasks */ forVect(taskNum, taskPtrs_m) freeTask(getTaskPtr(taskNum)); /* Temp Facts */ forVect(factNum, tmpFacts_m) freeFact(ptr(Fact, tmpFacts_m) + factNum); /* Restrictions */ forVect(restrNum, restrs_m) freeRestriction(getRestrPtr(restrNum)); /* DataTypes */ forVect(typeNum, types_m) freeDataType(getTypePtr(typeNum)); /* Sources */ forVect(srcNum, modelPtr->sources) freeSource(ptr(Source, modelPtr->sources) + srcNum); /* Errors */ forVect(errNum, modelPtr->errors) freeError(ptr(Error, modelPtr->errors) + errNum); /* Vectors */ freeVect(preds_m); freeVect(funcs_m); freeVect(axioms_m); freeVect(taskPtrs_m); freeVect(tmpFacts_m) freeVect(restrs_m); freeVect(types_m); freeVect(modelPtr->errors); freeVect(modelPtr->sources); }
int main(int argc, char **argv) { source * src; int i; int * M; int * resultat; if(argc < 2) { printf("syntaxe : %s benchmarks_Taillard/...\n", argv[0]); return -1; } src=readsrc(argv[1]); // table de durée d'opération Tab[][] M=TabtoM(src); // table de durée d'opération M[] //aff_source(src); //aff_M(M,src->n,src->m); // ILS resultat=ILS(M, src->n, src->m); printf("ILS la séquence de Jobs est: \n"); for(i=0;i<src->n;i++) printf("%-4d",resultat[i]); printf("\nILS la somme de date de fin est: %d\n",calculateCbarre(M, src->m, src->n, resultat, src->n)); // IGA resultat=IGA(M, src->n, src->m); printf("IGA la séquence de Jobs est: \n"); for(i=0;i<src->n;i++) printf("%-4d",resultat[i]); printf("\nIGA la somme de date de fin est: %d\n",calculateCbarre(M, src->m, src->n, resultat, src->n)); free(resultat); freeSource(src); freeM(M); return 1; }