Algorithmique Numérique Distribuée Public GIT Repository
 author velho Wed, 14 Feb 2007 16:41:56 +0000 (16:41 +0000) committer velho Wed, 14 Feb 2007 16:41:56 +0000 (16:41 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@3148 48e7efb5-ca39-0410-a469-dd3cf9ba447f

 src/surf/sdp.c patch | blob | history

index 054abe4..35a49bf 100644 (file)
@@ -30,6 +30,8 @@ static void addentry(struct constraintmatrix *constraints,

XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_sdp, surf,
"Logging specific to SURF (sdp)");
+XBT_LOG_NEW_SUBCATEGORY(surf_sdp_out, surf,
+                               "Logging specific to SURF (sdp)");
/*
########################################################################
######################## Simple Proportionnal fairness #################
@@ -189,7 +191,7 @@ void sdp_solve(lmm_system_t sys)
*/
nb_var = get_y(K, pow(2,K));
DEBUG1("Number of variables in the SDP program : %d", nb_var);
-  //fprintf(sdpout,"%d\n", nb_var);
+  CDEBUG1(surf_sdp_out,"%d", nb_var);

/*
* Find the size of each group of constraints.
@@ -345,7 +347,7 @@ void sdp_solve(lmm_system_t sys)
* We have a hidden diagonal block!
*/

-      printf("Block %d is actually diagonal.\n",i);
+      //printf("Block %d is actually diagonal.\n",i);

blocksz=C.blocks[i].blocksize;
tempdiag=(double *)calloc((blocksz+1), sizeof(double));
@@ -396,8 +398,8 @@ void sdp_solve(lmm_system_t sys)
/*
* Debuging print problem in SDPA format.
*/
-  printf("Printing SDPA...\n");
if(XBT_LOG_ISENABLED(surf_sdp, xbt_log_priority_debug)) {
+    DEBUG0("Printing SDPA...\n");
char *tmp=strdup("SURF-PROPORTIONNAL.sdpa");
write_prob(tmp,total_block_size,nb_var,C,a,constraints);
free(tmp);
@@ -406,7 +408,7 @@ void sdp_solve(lmm_system_t sys)
/*
* Initialize parameters.
*/
-  printf("Initializing solution...\n");
+  DEBUG0("Initializing solution...\n");
initsoln(total_block_size, nb_var, C, a, constraints, &X, &y, &Z);

@@ -414,24 +416,28 @@ void sdp_solve(lmm_system_t sys)
/*
* Call the solver.
*/
-  printf("Calling the solver...\n");
+  DEBUG0("Calling the solver...\n");
+  FILE *stdout_sav=stdout;
+  stdout=fopen("/dev/null","w");
int ret = easy_sdp(total_block_size, nb_var, C, a, constraints, 0.0, &X, &y, &Z, &pobj, &dobj);
+  fclose(stdout);
+  stdout=stdout_sav;

switch(ret){
case 0:
-  case 1: printf("SUCCESS The problem is primal infeasible\n");
+  case 1: DEBUG0("SUCCESS The problem is primal infeasible\n");
break;

-  case 2: printf("SUCCESS The problem is dual infeasible\n");
+  case 2: DEBUG0("SUCCESS The problem is dual infeasible\n");
break;

-  case 3: printf("Partial SUCCESS A solution has been found, but full accuracy was not achieved. One or more of primal infeasibility, dual infeasibility, or relative duality gap are larger than their tolerances, but by a factor of less than 1000.\n");
+  case 3: DEBUG0("Partial SUCCESS A solution has been found, but full accuracy was not achieved. One or more of primal infeasibility, dual infeasibility, or relative duality gap are larger than their tolerances, but by a factor of less than 1000.\n");
break;

-  case 4: printf("Failure. Maximum number of iterations reached.");
+  case 4: DEBUG0("Failure. Maximum number of iterations reached.");
break;

-  case 5: printf("Failure. Stuck at edge of primal feasibility.");
+  case 5: DEBUG0("Failure. Stuck at edge of primal feasibility.");
break;

}