Changeset 389

Show
Ignore:
Timestamp:
09/11/08 06:39:16 (2 months ago)
Author:
powell
Message:

Wrapped printfs in #ifdef DEBUG, bit of reordering.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/matml/src/ternary/qhull.c

    r385 r389  
    127127      slope3 = (x2*yG-xG*y2)/vG; 
    128128 
     129#ifdef DEBUG 
    129130      printf ("      corners: %g %g %g %g %g %g %g %g %g\n      slopes: %g %g\n", 
    130131              corners[0], corners[1], corners[2], 
    131132              corners[3], corners[4], corners[5], 
    132133              corners[6], corners[7], corners[8], slope2, slope3); 
     134#endif 
    133135    } 
    134136  else 
     
    164166      current.C3 += dC3; 
    165167      distance = dC2*dC2 + dC3*dC3; 
    166       //printf ("        Added %g,%g (dist %g) to go to %g,%g\n", dC2,dC3, 
    167       //      sqrt(distance), current.C2,current.C3); 
     168#ifdef DEBUG 
     169      printf ("        Added %g,%g (dist %g) to go to %g,%g\n", dC2,dC3, 
     170              sqrt(distance), current.C2,current.C3); 
     171#endif 
    168172    } 
    169173 
     
    259263          int eparamc=0; 
    260264 
     265#ifdef DEBUG 
    261266          printf ("Facet 0x%lx: %g,%g %g,%g %g,%g\n", facet, 
    262267                  corners[0], corners[1], corners[3], 
     
    266271                  thepoint[0], thepoint[1], thepoint[2], 
    267272                  fabs((corners[3]-corners[0])*(corners[7]-corners[1]) - 
    268                        (corners[6]-corners[0])*(corners[4]-corners[1]))); 
     273                  (corners[6]-corners[0])*(corners[4]-corners[1]))); 
     274#endif 
    269275 
    270276          /*+ 
     
    288294              } 
    289295 
     296#ifdef DEBUG 
    290297          printf ("  Centroid %g, free energy %g (func %d)\n", 
    291                   centroid[2], Gcenter, eparamc); 
     298            centroid[2], Gcenter, eparamc); 
     299#endif 
    292300 
    293301          if (Gcenter < centroid[2] && 
     
    296304              if (one_phase_refine || eparam[0] != eparamc) 
    297305                { 
     306#ifdef DEBUG 
    298307                  printf ("  Refining %s-phase triangle at centroid\n", 
    299                           (eparam[0]==eparamc) ? "one" : "multi"); 
     308                    (eparam[0]==eparamc) ? "one" : "multi"); 
     309#endif 
    300310                  if (numnewpoints >= newpointsize) 
    301311                    newpoints = realloc 
     
    310320              else 
    311321                { 
     322#ifdef DEBUG 
    312323                  printf ("  Not refining one-phase triangle\n"); 
     324#endif 
    313325                } 
    314326            } 
     
    327339                                        corners[6], corners[7], corners[8]}; 
    328340 
     341#ifdef DEBUG 
    329342              printf ("  Refining multi-phase triangle\n"); 
     343#endif 
    330344              for (j=0; j<3; j++) 
    331345                { 
     
    358372              for (j=0; j<3; j++) 
    359373                { 
     374#ifdef DEBUG 
    360375                  printf ("    Refining point at %g, %g function %d\n", 
    361376                          newcorners[3*j], newcorners[3*j+1], eparam[j]); 
     377#endif 
    362378                  NewtonRefine (newcorners+3*j, corners, eparams+eparam[j], 
    363379                                T,P, 3,3, newton_tolerance); 
     380#ifdef DEBUG 
    364381                  printf ("    -> %g, %g\n", newcorners[3*j], 
    365382                          newcorners[3*j+1]); 
     383#endif 
    366384 
    367385                  newcorners[3*j+2] = free_energy 
     
    381399                  newcorners[0]+newcorners[1]<=1.) 
    382400                { 
     401#ifdef DEBUG 
    383402                  printf ("    Adding new point %g,%g,%g\n", 
    384                           newcorners[0], newcorners[1], newcorners[2]); 
     403                    newcorners[0], newcorners[1], newcorners[2]); 
     404#endif 
    385405                  if (numnewpoints >= newpointsize) 
    386406                    newpoints = realloc 
     
    400420                  newcorners[3]+newcorners[4]<=1.) 
    401421                { 
     422#ifdef DEBUG 
    402423                  printf ("    Adding new point %g,%g,%g\n", 
    403424                          newcorners[3], newcorners[4], newcorners[5]); 
     425#endif 
    404426                  if (numnewpoints >= newpointsize) 
    405427                    newpoints = realloc 
     
    423445                  newcorners[6]+newcorners[7]<=1.) 
    424446                { 
     447#ifdef DEBUG 
    425448                  printf ("    Adding new point %g,%g,%g\n", 
    426449                          newcorners[6], newcorners[7], newcorners[8]); 
     450#endif 
    427451                  if (numnewpoints >= newpointsize) 
    428452                    newpoints = realloc 
     
    442466    +*/ 
    443467 
     468  /*+ Unfortunately, adding new points can create dissonance between qhull 
     469    indices and Ternary indices.  So this frees the old hull and creates a new 
     470    one around the old points and new refined ones.  This adds an N log N 
     471    process to an otherwise order-N refining algorithm, but can't be 
     472    helped. +*/ 
     473#ifdef DEBUG 
     474  printf ("Adding %d new points to hull\n", numnewpoints); 
     475#endif 
     476 
    444477  if (!(*points = realloc 
    445478        (*points, (*numpoints + numnewpoints) * sizeof (ternary_point)))) 
    446479    return 1; 
    447480           
    448   printf ("Adding %d new points to hull\n", numnewpoints); 
     481  qh_freeqhull (True); 
     482  free (qpoints); 
     483 
    449484  for (i=0; i<numnewpoints; i++) 
    450485    { 
     
    470505  *numpoints += numnewpoints; 
    471506 
    472   qh_freeqhull (True); 
    473   free (qpoints); 
    474  
     507#ifdef DEBUG 
    475508  printf ("Done, returning\n"); 
     509#endif 
    476510  free(newpoints); 
    477511