# Changeset 35f51c1 in git

Ignore:
Timestamp:
Mar 19, 2014, 9:03:08 PM (10 years ago)
Branches:
Children:
Parents:
78d77686cc4b5fc9f6f797bc4ca23dc1ca4c751c23f745157ee6c94377957e40ac2de34bd6812b90
Message:
```Merge pull request #544 from mmklee/algfuncfact2

Algfuncfact2```
Files:
6 edited

Unmodified
Removed
• ## Singular/LIB/tropical.lib

 r23f745 // to start all over again; // this is controlled by the while-loop intvec ordnungskontrollvektor=N,-w[2]; // used with the option puiseux while (size(liftrings)==0) { else // use absolute primary decomposition { list TP=tropicalparametrise(i,w,ordnung,gfanold,findall,nogfan,puiseux,ini); list TP=tropicalparametrise(i,w,ordnung,ordnungskontrollvektor,gfanold,findall,nogfan,puiseux,ini); } // compute the liftrings by resubstitution w=precutdownw; */ ~ } } } /////////////////////////////////////////////////////////// if (voice+printlevel>=2) if (printlevel-voice+2>=0) { { "EXAMPLE:"; int oldprintlevel=printlevel; printlevel=1; echo=2; //////////////////////////////////////////////////////// setring R; displayTropicalLifting(LIST,"subst"); printlevel=oldprintlevel; } RETURN:  list, where each entry of the list l describes the Newton-Puiseux @*             parametrisations of one branch of the plane curve singularity @*             at the origin defined by f; only the first n terms of each @*             at the origin defined by f; only the terms up to order n of each @*             parametetrisation are computed @*             l[i][1] = is a ring the new base field will have a parameter and a new minimal polynomial, and LIFT[2] describes how the old parameter can be computed from the new one @*       - if a field extension with minimal polynomial of degree k was necessary, then to the one extension produced acutally k extensions correspond by replacing the parameter a successively by all zeros of the minimal polynomial @*       - if the option subst was set l[i][3] contains the polynomial where y has been substituted by y(t^{1/N}) as a string "EXAMPLE:"; echo=2; printlevel=1; ring r=0,(x,y),ds; poly f=x2-y4+x5y7; "AND HIT THE RETURN BUTTON TWICE (!!!) - NOTE, THE LAST 0 IS OMITTED"; "IF YOU WANT wneu TO BE TESTED, THEN SET goon=0;"; ~ // THIS IS NOT NECESSARY !!!! IF WE COMPUTE NOT ONLY THE // TROPICAL PREVARIETY { "CHOOSE A DIFFERENT RAY"; ~ } else { "Set intvec wneu!"; ~ } } /////////////////////////////////////////////////////////////////////////////// static proc tropicalparametrise (ideal i,intvec ww,int ordnung,int gfanold,int findall,int nogfan,int puiseux,list #) static proc tropicalparametrise (ideal i,intvec ww,int ordnung,intvec ordnungskontrollvektor,int gfanold,int findall,int nogfan,int puiseux,list #) "USAGE:  tropicalparametrise(i,tw,ord,gf,fa,ng,pu[,#]); i ideal, tw intvec, ord int, gf,fa,ng,pu int, # opt. list ASSUME:  - i is an ideal in Q[t,x_1,...,x_n,@a], tw=(w_0,w_1,...,w_n,0) list wneulist; // carries all newly computed weight vector intvec wneu;   // carries the newly computed weight vector intvec okvneu; // carries the newly computed ordnungskontrollvektor int tweight;   // carries the weight of t list PARALIST; // carries the result when tropicalparametrise "AND HIT THE RETURN BUTTON - NOTE, THE LAST 0 IS OMITTED"; "IF YOU WANT wneu TO BE TESTED, THEN SET goon=0;"; ~ // THIS IS NOT NECESSARY !!!! IF WE COMPUTE NOT ONLY // THE TROPICAL PREVARIETY { "CHOOSE A DIFFERENT RAY"; ~ } else { "Set wneulist!"; ~ } else { "Set intvec wneu!"; ~ wneulist[1]=wneu; } // if all variables were deleted, then i=0 and thus anzahlvariablen==0 lll=0; if ((ordnung>1) and (anzahlvariablen>1)) if (((puiseux==0) and (ordnung>1)) or ((puiseux==1) and (ordnungskontrollvektor[2]1)) { partliftings=list(); // initialise partliftings { wneu=wneulist[kk]; PARALIST=tropicalparametrise(i,wneu,ordnung-1,gfanold,findall,nogfan,puiseux,anzahlvariablen,zero); okvneu=-ordnungskontrollvektor[1]*wneu[1],-ordnungskontrollvektor[2]*wneu[1]-wneu[2]; if (puiseux==0) { PARALIST=tropicalparametrise(i,wneu,ordnung-1,okvneu,gfanold,findall,nogfan,puiseux,anzahlvariablen,zero); } else { PARALIST=tropicalparametrise(i,wneu,ordnung,okvneu,gfanold,findall,nogfan,puiseux,anzahlvariablen,zero); } // the output will be a ring, in which the // parametrisation lives, and a string, which contains
• ## Tst/Short.lst

 r78d776 Short/bug_tr549.tst Short/bug_x_i_j.tst Short/charseries.tst Short/classify_s.tst Short/cyc5_lp.tst
• ## Tst/Short/ok_s.lst

 r78d776 bug_x_i_j brnoeth_s charseries countedref_s classify_s
• ## factory/canonicalform.cc

 r78d776 #include "gfops.h" #include "facMul.h" #include "FLINTconvert.h" #include #ifndef NOSTREAMIO
• ## factory/libfac/charset/alg_factor.cc

 r78d776 newfactoras( const CanonicalForm & f, const CFList & as, int &success) { bool isRat= isOn (SW_RATIONAL); if (!isRat) On (SW_RATIONAL); Variable vf=f.mvar(); CFListIterator i; // ||( (as.length()==1) && (degree(f,vf)==3) && (degree(as.getFirst()==2)) ) DEBDECLEVEL(CERR,"newfactoras"); if (!isRat) Off (SW_RATIONAL); return CFFList(CFFactor(f,1)); } if ( Astar.length() == 0 ){ DEBDECLEVEL(CERR,"newfactoras"); if (!isRat) Off (SW_RATIONAL); return CFFList(CFFactor(f,1)); } CFFList result= newfactoras (Ggcd,as,success); //Ggcd is the squarefree part of f multiplicity (result, f, Astar); if (!isRat) Off (SW_RATIONAL); return result; } Fgcd= pp(Fgcd); Ggcd= pp(Ggcd); DEBDECLEVEL(CERR,"newfactoras"); if (!isRat) Off (SW_RATIONAL); return myUnion(newfactoras(Fgcd,as,success) , newfactoras(Ggcd,as,success)); } if ( getCharacteristic() > 0 ) { if (!isRat) Off (SW_RATIONAL); // First look for extension! IntList degreelist; Variable vminpoly; Factorlist= alg_factor(f, Astar, vminpoly, oldord, as, isFunctionField); DEBDECLEVEL(CERR,"newfactoras"); return Factorlist; DEBDECLEVEL(CERR,"newfactoras"); if (!isRat) Off (SW_RATIONAL); return Factorlist; } newcfactor(const CanonicalForm & f, const CFList & as, int & success ) { On (SW_RATIONAL); bool isRat= isOn (SW_RATIONAL); if (!isRat) On (SW_RATIONAL); CFFList Output, output, Factors= factorize(f); if (Factors.getFirst().factor().inCoeffDomain()) if ( as.length() == 0 ) { if (!isRat) Off (SW_RATIONAL); success=1; return Factors; if ( cls(f) <= cls(as.getLast()) ) { if (!isRat) Off (SW_RATIONAL); success=1; return Factors; Output = myappend(Output,CFFactor(j.getItem().factor(),j.getItem().exp()*i.getItem().exp())); } if (!isRat) Off (SW_RATIONAL); return Output; }