Changeset f4f6628 in tol


Ignore:
Timestamp:
Nov 24, 2011, 10:33:16 AM (15 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
35aac13
Parents:
523e2d1
Message:

Refs #1342
Forcing initial interior point for main linear block

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@3864 be4846ae-f051-483a-831f-b64e7d08527f

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tol/btol/vmatrix_type/vmat_stats.cpp

    r523e2d1 rf4f6628  
    715715      double lowMrg = lower;
    716716      double uppMrg = upper;
    717       if(lower>=K)
     717      if(lowMrg>K)
    718718      {
     719        if(uppMrg>=2*lowMrg) { uppMrg=2*lowMrg; }
    719720        //Si todo el dominio está por encima de K tomamos como nuevos límites
    720721        //tentativos los puntos con densidad 1.1 y 110 veces las del límite inferior.
    721722        //De esta forma el nuevo límite inferior es por construcción 100 veces más
    722723        //probable que el superior
    723         double lowMrg_ = sqrt(pow(lower,2) + 2.0 * log(  1.1) );
    724         double uppMrg_ = sqrt(pow(upper,2) + 2.0 * log(110.0) );
     724        double lowMrg_ = sqrt(pow(lowMrg,2) + 2.0 * log(  1.1) );
     725        double uppMrg_ = sqrt(pow(uppMrg,2) + 2.0 * log(110.0) );
    725726        //Si los límites tentativos se salen del dominio hay que meterlos dentro
    726727        if(lowMrg_>=upper)
    727728        {
    728           lowMrg = 0.99*lower+0.01*upper;
    729           uppMrg = 0.99*upper+0.01*lower;
     729          lowMrg = 0.99*lowMrg+0.01*uppMrg;
     730          uppMrg = 0.99*uppMrg+0.01*lowMrg;
    730731        }
    731732        else
    … …  
    734735          if(uppMrg_>=upper)
    735736          {
    736             uppMrg = 0.99*upper+0.01*lowMrg;
     737            uppMrg = 0.99*uppMrg+0.01*lowMrg;
    737738          }
    738739          else
    … …  
    756757        }
    757758      }
    758       else if(upper<=-K)
     759      else if(upper<-K)
    759760      {
     761        if(lowMrg<=2*uppMrg) { lowMrg=2*uppMrg; }
    760762        //Si todo el dominio está por debajo de -K tomamos como nuevos límites
    761763        //tentativos los puntos con densidad 1.1 y 110 veces las del límite superior.
    762764        //De esta forma el nuevo límite superior es por construcción 100 veces más
    763765        //probable que el inferior
    764         double uppMrg_ = -sqrt(pow(upper,2) + 2.0 * log(  1.1) );
    765         double lowMrg_ = -sqrt(pow(lower,2) + 2.0 * log(110.0) );
     766        double uppMrg_ = -sqrt(pow(uppMrg,2) + 2.0 * log(  1.1) );
     767        double lowMrg_ = -sqrt(pow(lowMrg,2) + 2.0 * log(110.0) );
    766768        //Si los límites tentativos se salen del dominio hay que meterlos dentro
    767769        if(uppMrg_<=lower)
    768770        {
    769           lowMrg = 0.99*lower+0.01*upper;
    770           uppMrg = 0.99*upper+0.01*lower;
     771          lowMrg = 0.99*lowMrg+0.01*uppMrg;
     772          uppMrg = 0.99*uppMrg+0.01*lowMrg;
    771773        }
    772774        else
    … …  
    775777          if(lowMrg_<=lower)
    776778          {
    777             lowMrg = 0.99*lower+0.01*uppMrg;
     779            lowMrg = 0.99*lowMrg+0.01*uppMrg;
    778780          }
    779781          else
Note: See TracChangeset for help on using the changeset viewer.