Changeset 20357b in git


Ignore:
Timestamp:
May 7, 2015, 10:25:29 AM (9 years ago)
Author:
Stephan Oberfranz <oberfran@…>
Branches:
(u'spielwiese', '4a9821a93ffdc22a6696668bd4f6b8c9de3e6c5f')
Children:
a817084b5284694230319ae82cddc45954052311
Parents:
1b0fdfeed37de935efef12130903a54bf744d61c
Message:
fractal walk for arbitrary Groebner bases
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/walk.cc

    r1b0fdf r20357b  
    67236723 * Perturb the start weight vector at the top level, i.e. nlev = 1     *
    67246724 ***********************************************************************/
    6725 static ideal rec_fractal_call(ideal G, int nlev, intvec* ivtarget, int printout)
     6725static ideal rec_fractal_call(ideal G, int nlev, intvec* ivtarget,
     6726             int reduction, int printout)
    67266727{
    67276728  Overflow_Error =  FALSE;
     
    67316732  ring new_ring, testring;
    67326733  //ring extoRing;
    6733   ideal Gomega, Gomega1, Gomega2, F, F1, Gresult, Gresult1, G1, Gt;
     6734  ideal Gomega, Gomega1, Gomega2, FF, F, F1, Gresult, Gresult1, G1, Gt;
    67346735  int nwalks = 0;
    67356736  intvec* Mwlp;
     
    70707071      idString(Gomega,"//** rec_fractal_call: Gomega");
    70717072    }
     7073
     7074    if(reduction == 0)
     7075    {
     7076      /* Check whether the intermediate weight vector lies in the interior of the cone.
     7077       * If so, only perform reductions. Otherwise apply Buchberger's algorithm. */
     7078      FF = middleOfCone(G,Gomega);
     7079      if( FF != NULL)
     7080      {
     7081        idDelete(&G);
     7082        G = idCopy(FF);
     7083        idDelete(&FF);
     7084        /* Compue next vector. */
     7085        goto NEXT_VECTOR_FRACTAL;
     7086      }
     7087    }
     7088
    70727089#ifndef  BUCHBERGER_ALG
    70737090    if(isNolVector(omega) == 0)
     
    71087125      rChangeCurrRing(oRing);
    71097126      Gomega1 = idrMoveR(Gomega1, oRing,currRing);
    7110       Gresult = rec_fractal_call(idCopy(Gomega1),nlev+1,omega,printout);
     7127      Gresult = rec_fractal_call(idCopy(Gomega1),nlev+1,omega,reduction,printout);
    71117128    }
    71127129    if(printout > 2)
     
    75397556    }
    75407557
    7541 
    7542 //////////////////////////////////// hier neu!!
    7543 
    7544 
    7545    if(reduction == 0)
    7546     {
    7547       //PrintS("\n//** rec_r_fractal_call: test middle of cone!\n");
     7558    if(reduction == 0)
     7559    {
     7560      /* Check whether the intermediate weight vector lies in the interior of the cone.
     7561       * If so, only perform reductions. Otherwise apply Buchberger's algorithm. */
    75487562      FF = middleOfCone(G,Gomega);
    7549       //PrintS("\n//** rec_r_fractal_call: Test F!\n");
    75507563      if( FF != NULL)
    75517564      {
     
    75537566        G = idCopy(FF);
    75547567        idDelete(&FF);
    7555         PrintS("\n//** rec_r_fractal_call: FF nicht NULL! Compue next vector.\n");
     7568        /* Compue next vector. */
    75567569        goto NEXT_VECTOR_FRACTAL;
    75577570      }
    75587571    }
    7559 
    7560 
    7561 
    7562 ///////////////////////////////////////////////////
    7563 
    75647572
    75657573#ifndef  BUCHBERGER_ALG
     
    77797787  ring helpRing = currRing;
    77807788
    7781   J = rec_fractal_call(J,1,ivtarget,printout);
     7789  J = rec_fractal_call(J,1,ivtarget,reduction,printout);
    77827790
    77837791  rChangeCurrRing(oldRing);
Note: See TracChangeset for help on using the changeset viewer.