Changeset 7036d0 in git


Ignore:
Timestamp:
Jul 3, 2015, 10:56:16 AM (8 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
Children:
105eb273abbf2ab214f10f04627af4902c750d87988b95c72fc990b11e9eec2eac106b9b5e6e422c
Parents:
f34cd445520f5220554ca71a6324d2a0ecd2c7f6257093d0618eb73fbbcb0854dbb00b31676ad63a
Message:
Merge pull request #716 from steenpass/nfmodstd

add: include benchmark problems in nfmodstd.lib
Files:
6 added
20 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/nfmodstd.lib

    rf34cd44 r7036d0  
    524524    I;
    525525}
     526
     527//////////////////////////////////////////////////////////////////////////////
     528
     529/*
     530Benchmark Problems from
     531
     532Boku, Decker, Fieker, Steenpass: Groebner Bases over Algebraic Number
     533Fields.
     534
     535// 1
     536ring R = (0,a), (x,y,z), dp;
     537minpoly = (a^2+1);
     538poly f1 = (a+8)*x^2*y^2+5*x*y^3+(-a+3)*x^3*z
     539          +x^2*y*z;
     540poly f2 = x^5+2*y^3*z^2+13*y^2*z^3+5*y*z^4;
     541poly f3 = 8*x^3+(a+12)*y^3+x*z^2+3;
     542poly f4 = (-a+7)*x^2*y^4+y^3*z^3+18*y^3*z^2;
     543ideal I1 = f1,f2,f3,f4;
     544
     545// 2
     546ring R = (0,a), (x,y,z), dp;
     547minpoly = (a^5+a^2+2);
     548poly f1 = 2*x*y^4*z^2+(a-1)*x^2*y^3*z
     549          +(2*a)*x*y*z^2+7*y^3+(7*a+1);
     550poly f2 = 2*x^2*y^4*z+(a)*x^2*y*z^2-x*y^2*z^2
     551          +(2*a+3)*x^2*y*z-12*x+(12*a)*y;
     552poly f3 = (2*a)*y^5*z+x^2*y^2*z-x*y^3*z
     553          +(-a)*x*y^3+y^4+2*y^2*z;
     554poly f4 = (3*a)*x*y^4*z^3+(a+1)*x^2*y^2*z
     555          -x*y^3*z+4*y^3*z^2+(3*a)*x*y*z^3
     556          +4*z^2-x+(a)*y;
     557ideal I2 = f1,f2,f3,f4;
     558
     559// 3a
     560ring R = (0,a), (v,w,x,y,z), dp;
     561minpoly = (a^7-7*a+3);
     562poly f1 = (a)*v+(a-1)*w+x+(a+2)*y+z;
     563poly f2 = v*w+(a-1)*w*x+(a+2)*v*y+x*y+(a)*y*z;
     564poly f3 = (a)*v*w*x+(a+5)*w*x*y+(a)*v*w*z
     565          +(a+2)*v*y*z+(a)*x*y*z;
     566poly f4 = (a-11)*v*w*x*y+(a+5)*v*w*x*z
     567          +(a)*v*w*y*z+(a)*v*x*y*z
     568          +(a)*w*x*y*z;
     569poly f5 = (a+3)*v*w*x*y*z+(a+23);
     570ideal I3a = f1,f2,f3,f4,f5;
     571
     572// 3b
     573ring R = (0,a), (u,v,w,x,y,z), dp;
     574minpoly = (a^7-7*a+3);
     575poly f1 = (a)*u+(a+2)*v+w+x+y+z;
     576poly f2 = u*v+v*w+w*x+x*y+(a+3)*u*z+y*z;
     577poly f3 = u*v*w+v*w*x+(a+1)*w*x*y+u*v*z+u*y*z
     578          +x*y*z;
     579poly f4 = (a-1)*u*v*w*x+v*w*x*y+u*v*w*z
     580          +u*v*y*z+u*x*y*z+w*x*y*z;
     581poly f5 = u*v*w*x*y+(a+1)*u*v*w*x*z+u*v*w*y*z
     582          +u*v*x*y*z+u*w*x*y*z+v*w*x*y*z;
     583poly f6 = u*v*w*x*y*z+(-a+2);
     584ideal I3b = f1,f2,f3,f4,f5,f6;
     585
     586// 4
     587ring R = (0,a), (w,x,y,z), dp;
     588minpoly = (a^6+a^5+a^4+a^3+a^2+a+1);
     589poly f1 = (a+5)*w^3*x^2*y+(a-3)*w^2*x^3*y
     590          +(a+7)*w*x^2*y^2;
     591poly f2 = (a)*w^5+(a+3)*w*x^2*y^2
     592          +(a^2+11)*x^2*y^2*z;
     593poly f3 = (a+7)*w^3+12*x^3+4*w*x*y+(a)*z^3;
     594poly f4 = 3*w^3+(a-4)*x^3+x*y^2;
     595ideal I4 = f1,f2,f3,f4;
     596
     597// 5
     598ring R = (0,a), (w,x,y,z), dp;
     599minpoly = (a^12-5*a^11+24*a^10-115*a^9+551*a^8
     600          -2640*a^7+12649*a^6-2640*a^5+551*a^4
     601          -115*a^3+24*a^2-5*a+1);
     602poly f1 = (2*a+3)*w*x^4*y^2+(a+1)*w^2*x^3*y*z
     603          +2*w*x*y^2*z^3+(7*a-1)*x^3*z^4;
     604poly f2 = 2*w^2*x^4*y+w^2*x*y^2*z^2
     605          +(-a)*w*x^2*y^2*z^2
     606          +(a+11)*w^2*x*y*z^3-12*w*z^6
     607          +12*x*z^6;
     608poly f3 = 2*x^5*y+w^2*x^2*y*z-w*x^3*y*z
     609          -w*x^3*z^2+(a)*x^4*z^2+2*x^2*y*z^3;
     610poly f4 = 3*w*x^4*y^3+w^2*x^2*y*z^3
     611          -w*x^3*y*z^3+(a+4)*x^3*y^2*z^3
     612          +3*w*x*y^3*z^3+(4*a)*y^2*z^6-w*z^7
     613          +x*z^7;
     614ideal I5 = f1,f2,f3,f4;
     615
     616// 6
     617ring R = (0,a), (u,v,w,x,y,z), dp;
     618minpoly = (a^2+5*a+1);
     619poly f1 = u+v+w+x+y+z+(a);
     620poly f2 = u*v+v*w+w*x+x*y+y*z+(a)*u+(a)*z;
     621poly f3 = u*v*w+v*w*x+w*x*y+x*y*z+(a)*u*v
     622          +(a)*u*z+(a)*y*z;
     623poly f4 = u*v*w*x+v*w*x*y+w*x*y*z+(a)*u*v*w
     624          +(a)*u*v*z+(a)*u*y*z+(a)*x*y*z;
     625poly f5 = u*v*w*x*y+v*w*x*y*z+(a)*u*v*w*x
     626          +(a)*u*v*w*z+(a)*u*v*y*z+(a)*u*x*y*z
     627          +(a)*w*x*y*z;
     628poly f6 = u*v*w*x*y*z+(a)*u*v*w*x*y
     629          +(a)*u*v*w*x*z+(a)*u*v*w*y*z
     630          +(a)*u*v*x*y*z+(a)*u*w*x*y*z
     631          +(a)*v*w*x*y*z;
     632poly f7 = (a)*u*v*w*x*y*z-1;
     633ideal I6 = f1,f2,f3,f4,f5,f6,f7;
     634
     635// 7
     636ring R = (0,a), (w,x,y,z), dp;
     637minpoly = (a^8-16*a^7+19*a^6-a^5-5*a^4+13*a^3
     638          -9*a^2+13*a+17);
     639poly f1 = (-a^2-1)*x^2*y+2*w*x*z-2*w
     640          +(a^2+1)*y;
     641poly f2 = (a^3-a-3)*w^3*y+4*w*x^2*y+4*w^2*x*z
     642          +2*x^3*z+(a)*w^2-10*x^2+4*w*y-10*x*z
     643          +(2*a^2+a);
     644poly f3 = (a^2+a+11)*x*y*z+w*z^2-w-2*y;
     645poly f4 = -w*y^3+4*x*y^2*z+4*w*y*z^2+2*x*z^3
     646          +(2*a^3+a^2)*w*y+4*y^2-10*x*z-10*z^2
     647          +(3*a^2+5);
     648ideal I7 = f1,f2,f3,f4;
     649
     650// 8
     651ring R = (0,a), (t,u,v,w,x,y,z), dp;
     652minpoly = (a^7+10*a^5+5*a^3+10*a+1);
     653poly f1 = v*x+w*y-x*z-w-y;
     654poly f2 = v*w-u*x+x*y-w*z+v+x+z;
     655poly f3 = t*w-w^2+x^2-t;
     656poly f4 = (-a)*v^2-u*y+y^2-v*z-z^2+u;
     657poly f5 = t*v+v*w+(-a^2-a-5)*x*y-t*z+w*z+v+x+z
     658          +(a+1);
     659poly f6 = t*u+u*w+(-a-11)*v*x-t*y+w*y-x*z-t-u
     660          +w+y;
     661poly f7 = w^2*y^3-w*x*y^3+x^2*y^3+w^2*y^2*z
     662          -w*x*y^2*z+x^2*y^2*z+w^2*y*z^2
     663          -w*x*y*z^2+x^2*y*z^2+w^2*z^3-w*x*z^3
     664          +x^2*z^3;
     665poly f8 = t^2*u^3+t^2*u^2*v+t^2*u*v^2+t^2*v^3
     666          -t*u^3*x-t*u^2*v*x-t*u*v^2*x-t*v^3*x
     667          +u^3*x^2+u^2*v*x^2+u*v^2*x^2
     668          +v^3*x^2;
     669ideal I8 = f1,f2,f3,f4,f5,f6,f7,f8;
     670*/
  • Singular/LIB/poly.lib

    r257093d r7036d0  
    895895{
    896896  if (f==0) { return(number(1)); }
    897   return(leadcoef(f)/leadcoef(cleardenom(f)));
     897  if (attrib(basering,"ring_cf")
     898  && ((typeof(f)=="poly")||(typeof(f)=="vector")))
     899  {
     900    number c=leadcoef(f);
     901    while((c!=1)&&(f!=0))
     902    {
     903      c=gcd(c,leadcoef(f));
     904      f=f-lead(f);
     905    }
     906    return(c);
     907  }
     908  else
     909  {
     910    return(leadcoef(f)/leadcoef(cleardenom(f)));
     911  }
    898912}
    899913example
  • Singular/LIB/primdec.lib

    r257093d r7036d0  
    807807        if((size(sact)==1)&&(m==2))
    808808        {
    809           l[2*i]=l[2*i-1];
    810           attrib(l[2*i],"isSB",1);
     809          l[2*i]=std(l[2*i-1],sact[1]);
    811810        }
    812811        if((size(sact)==1)&&(m>2))
  • Singular/LIB/standard.lib

    r257093d r7036d0  
    954954
    955955 //------------------ classify the possible settings ---------------------
    956   string algorithm;       //possibilities: std, slimgb, stdorslimgb
     956  string algorithm;       //possibilities: std, slimgb, stdorslimgb, mathicgb
    957957  string conversion;      //possibilities: hilb, fglm, hilborfglm, no
    958958  string partovar;        //possibilities: yes, no
     
    961961
    962962  //define algorithm:
     963  if( (was_minpoly == 0) && (npars_P == 0) && (was_qring == 0) && (attrib (P,"global") == 1) && (char(P) > 0) && (size(BRlist)<=4) )
     964  {
     965    if( defined(Singmathic) )
     966    {
     967      algorithm = "mathicgb"; // make it default for any appropriate setting... if mathicgb is available...
     968    } else
     969    {
     970      if( p_opt && find(method,"mathicgb")  ) { "Sorry Singmathic::mathicgb is not available!"; }
     971    }
     972  }
    963973  if( find(method,"std") && !find(method,"slimgb") )
    964974  {
     
    10181028        (order=="simple" && (method==",par2var" && npars_P==0 )) ||
    10191029         (conversion=="no" && partovar=="no" &&
    1020            (algorithm=="std" || algorithm=="slimgb" ||
    1021             (find(method,"std") && find(method,"slimgb")) ) ) )
     1030           (algorithm=="std" || algorithm=="slimgb" || algorithm=="mathicgb" ||
     1031            (find(method,"std") && find(method,"slimgb"))
     1032           )
     1033         )
     1034     )
    10221035  {
    10231036    direct = "yes";
     
    10401053  //BRlist (=ringlist of basering) > 4 if the basering is non-commutative
    10411054//---------------------------- direct methods -----------------------------
     1055  if ( algorithm=="mathicgb" )
     1056  {
     1057    if (p_opt) { algorithm + " in " + string(P); }
     1058    return( mathicgb(i) );
     1059  }
    10421060  if ( direct == "yes" )
    10431061  {
  • Singular/maps_ip.cc

    r257093d r7036d0  
    7373      if (P!=0)
    7474      {
    75 //        WerrorS("Sorry 'napPermNumber' was lost in the refactoring process (due to Frank): needs to be fixed");
    76 //        return TRUE;
    77 #if 1
    7875// poly n_PermNumber(const number z, const int *par_perm, const int OldPar, const ring src, const ring dst);
    7976        res->data= (void *) n_PermNumber((number)data, par_perm, P, preimage_r, currRing);
    80 #endif
    8177        res->rtyp=POLY_CMD;
    82         if (nCoeff_is_Extension(currRing->cf))
     78        if (nCoeff_is_algExt(currRing->cf))
    8379          res->data=(void *)p_MinPolyNormalize((poly)res->data, currRing);
    8480        pTest((poly) res->data);
     
    8783      {
    8884        assume( nMap != NULL );
    89 
    9085        number a = nMap((number)data, preimage_r->cf, currRing->cf);
    91 
    92 
    9386        if (nCoeff_is_Extension(currRing->cf))
    9487        {
    95           n_Normalize(a, currRing->cf); // ???
     88          n_Normalize(a, currRing->cf);
    9689/*
    9790          number a = (number)res->data;
     
    152145        }
    153146      }
    154       else
    155       if ( (what==IMAP_CMD) || /*(*/ (what==FETCH_CMD) /*)*/) /* && (nMap!=nCopy)*/
     147      else if ((what==IMAP_CMD) || (what==FETCH_CMD))
    156148      {
    157149        for (i=R*C-1;i>=0;i--)
     
    162154        }
    163155      }
    164       else /* if(what==MAP_CMD) */
    165       {
     156      else /* (what==MAP_CMD) */
     157      {
     158        assume(what==MAP_CMD);
    166159        matrix s=mpNew(N,maMaxDeg_Ma((ideal)data,preimage_r));
    167160        for (i=R*C-1;i>=0;i--)
     
    172165        idDelete((ideal *)&s);
    173166      }
    174       if (nCoeff_is_Extension(currRing->cf))
     167      if (nCoeff_is_algExt(currRing->cf))
    175168      {
    176169        for (i=R*C-1;i>=0;i--)
     
    270263        n_Delete(&d, currRing); d = NULL;
    271264      }
    272        else if (!p_IsConstant((poly)NUM((fraction)d), R))
     265      else if (!p_IsConstant((poly)NUM((fraction)d), R))
    273266      {
    274267        WarnS("ignoring denominators of coefficients...");
  • Tst/Manual/Groebner_basis_conversion.res.gz.uu

    r257093d r7036d0  
    1 begin 640 Groebner_basis_conversion.res.gz
    2 M'XL("!]^N4X``T=R;V5B;F5R7V)A<VES7V-O;G9E<G-I;VXN<F5S`,U82X_;
     1begin 644 Groebner_basis_conversion.res.gz
     2M'XL("",'>U4``T=R;V5B;F5R7V)A<VES7V-O;G9E<G-I;VXN<F5S`,U82X_;
    33M-A"^^U<000\2;"D:/J5=[*)("P0!BE[26U`$MJ5=*_!:AJE-VOSZSHR>EF6W
    44M*'KH+#Q+SHM#4O.1TL???O[PJQ`"'L4O']Z)-[6OXWVY>7,OL/6Y/)1U$-XO
  • Tst/Manual/Groebner_basis_conversion.stat

    r257093d r7036d0  
    1 1 >> tst_memory_0 :: 1320779239:3133- exportiert :3-1-3:x86_64-Linux:wawa:496552
    2 1 >> tst_memory_1 :: 1320779239:3133- exportiert :3-1-3:x86_64-Linux:wawa:3031040
    3 1 >> tst_memory_2 :: 1320779239:3133- exportiert :3-1-3:x86_64-Linux:wawa:3573104
    4 1 >> tst_timer_1 :: 1320779239:3133- exportiert :3-1-3:x86_64-Linux:wawa:8
     11 >> tst_memory_0 :: 1434126079:4020, 64 bit:4.0.2:x86_64-Linux:dilbert:538712
     21 >> tst_memory_1 :: 1434126079:4020, 64 bit:4.0.2:x86_64-Linux:dilbert:4329472
     31 >> tst_memory_2 :: 1434126079:4020, 64 bit:4.0.2:x86_64-Linux:dilbert:4347232
     41 >> tst_timer_1 :: 1434126079:4020, 64 bit:4.0.2:x86_64-Linux:dilbert:1657
  • Tst/Manual/groebner_and_std.res.gz.uu

    r257093d r7036d0  
    1 begin 640 groebner_and_std.res.gz
    2 M'XL("/E]N4X``V=R;V5B;F5R7V%N9%]S=&0N<F5S`*U82V_;1A"^ZU<LC!Y(
     1begin 644 groebner_and_std.res.gz
     2M'XL("!('>U4``V=R;V5B;F5R7V%N9%]S=&0N<F5S`*U82V_;1A"^ZU<LC!Y(
    33M0'0X^R"7,2P432\&BE[26U`$ML381&5)T-(-DE_?^6;YE*7$AS+(:KGSV-G9
    44MF6_&_/C7[W=_*J5HI?ZX^TU=M:&]WC8/5S>*9Y^;7=,FZ<T"OVJU4H_'??VP
  • Tst/Manual/groebner_and_std.stat

    r257093d r7036d0  
    1 1 >> tst_memory_0 :: 1320779200:3133- exportiert :3-1-3:x86_64-Linux:wawa:524264
    2 1 >> tst_memory_1 :: 1320779200:3133- exportiert :3-1-3:x86_64-Linux:wawa:1429504
    3 1 >> tst_memory_2 :: 1320779200:3133- exportiert :3-1-3:x86_64-Linux:wawa:1462272
    4 1 >> tst_timer_1 :: 1320779200:3133- exportiert :3-1-3:x86_64-Linux:wawa:14
     11 >> tst_memory_0 :: 1434126079:4020, 64 bit:4.0.2:x86_64-Linux:dilbert:821112
     21 >> tst_memory_1 :: 1434126079:4020, 64 bit:4.0.2:x86_64-Linux:dilbert:2236416
     31 >> tst_memory_2 :: 1434126079:4020, 64 bit:4.0.2:x86_64-Linux:dilbert:2249896
     41 >> tst_timer_1 :: 1434126079:4020, 64 bit:4.0.2:x86_64-Linux:dilbert:1895
  • Tst/Short/cyc5_lp.res.gz.uu

    r257093d r7036d0  
    1 begin 640 cyc5_lp.res.gz
    2 M'XL("$NL;$D``V-Y8S5?;'`N<F5S`.U82V_C-A"^ZU<0BQXDR-)J^)*4((MB
    3 M6V"QP**7]+8H"MM28BV<R#"=;KN_OC.CIR7%+8JBZ,$,/"#GQ2%'\Y',_<\_
    4 M?OQ)"`'OD!RKYT=Q%'=*)HE:^>O59K5=%:LR6.T/M]Y]JRI)M2K*]5Y4=^MP
    5 M$V[#8B76FW"S#;=%N"[#HJ3Q%ADXW)3ANBA14JYZ%RH60R--_*':!O76J$B&
    6 MC8NBC&"86=/,]>%4U<_^X5B?@D%DAJ"^P)T[%0^/^R>_"FZ%AP-1/0N?5Q6<
    7 M+<LO#KX)5C\$WF>K;N0OX.O`25\%3ODR<-I1USCBHI[S;6`CY_P4NSG^`((H
    8 M)08H&I$&I$$4N2C*(NQ;8F1(9$*$E*0-(NY&3<NC5A$2'\BGE$0,R[&CR1U`
    9 MU#4'DN9PK3*T?MPYTX'BZ3B4QE$2]#XBT&0@>PZ8B-:&'5R>3W-#BFS/O[_I
    10 M9Y@T#_>_>-F>Q/98G<HC9N0&DEQL=VO<ZH&GI/1B:B&1J/E%830>1=P)0^PP
    11 MZ67-B&G78M8?*W'K5<XL0FQ$IK$3P_NMJ)[NA#9->'^WS9U=:O\3Y;Y(+!6)
    12 MJ[Z5_A?`RA#B[5L>"O^YCD7](`[U_@\74+5LZZ?#RZDLQ(?WGND=I*,JDU1E
    13 MNVJ_H2KS6GU!C/)X$@[S7SKQM3KM1%N`C"[S*EQ]W]2AY3K\6E:/NY,3+P[G
    14 M?JB/$X<W`E;]G_=9P0W,B]89&K1%&SE+W_:_4;3Y4+1<HDBR(.HEKI5"TA4N
    15 M-ZY*8L.T2CMQ%C1*5-M4O&>3IGV%#Z!!WE3$P8_2S%7-56RZ*K;18J5FV:Q0
    16 MK4D8*#EAM.?+D,G)VC-H8LJ@@<XN"T!IT`GE0>6,GCB(,!LD\37E0^/NXD:Y
    17 M'29%TS88$AE.%6VHH=TWM/N&-LWMFI;Z1O4J:2/%M0+MD"7`M&224L)2<ICJ
    18 MD7'?LL:S)0UK>BOVDI*7=-C/F3&VO(U6G07:N--]FKKQU`,"_&@1;"E;3=^F
    19 M3?ADGPZ8WL6'1"TM"*!U1`NWY-Q26)8VIUF0;CY,['$)Y.VQDF;!A76R:SE.
    20 M3=J'/,PT;&#2!#B>Q/E9<^"\YK^;1ODZ._\,QND=;<]E/X-#[2NR4Q2/HGCH
    21 M4_0U[88V%]R`Z<N."QH-R48MVX!M,8++E6*4\Q@A;>'E3/-,(_M+C=P'';3`
    22 M08@T%LJ$T,P-&H,$7I7(L<2.)<H'2B7AXL#4#)S0SRS-E&&GC'3*R*:,?,)0
    23 M20?/[1C\/K+/D$BZFRF&>!(JIIJI86J9IDPSICE1G3`%II(IVVJVU6RKV5:S
    24 MK69;S;:&;0W;&K8U;&MT&]<"KNH<9L`*D.:Y-SD61R:0>D6YJY_JQ_*Y^K:F
    25 MNZWGJJ?#OGJHMLVP>EH?Q*E^[0#M$1FQN#NHL^&DE__HI,_?-48O[@4/^P_'
    26 MNMP\ET>Q6;O*M28<')_1^_)W41^+D@+L/$`2#W>%1-!E@2\*=-%>.+/YHLUW
    27 M;!38LP,;:\.YM/TVH?UNVAY:9723'9WF,7_;L8OSN#O-VT.WN\1A:%Q+<5-S
    28 M#CD0=Z>N0397,RKR`<^00%8R;DY]UZB2'3>^LY."BCL)M[:@93",:"K-_B4%
    29 M&L_T8G(*)I[;SU3!QLLS-0W2USVT`;0#!*'FT=$IQ^[\T@OY*-!7(Y))/&%W
    30 M]A+B:72SJ*5\5412=4'HI+YH:RZ8.FEGTF1PG`Y+&K;#R2R>\FB5^6C]?5/)
    31 M$A,65>42UR'<+7'U(M<L<NTB-UWD9HO<?(FKE];F$&ZQ39X@6D94V=C!>RO"
    32 M+V(O`B^B+D(NXBV"+2(MPBQB+`*L,<Y8M_3$5+F9(6R>Z!YT8,"]!,&FQS,8
    33 M_=/BB[@3CRV@7=\NU[?+]>UR?;M<WRY3I>O;I6%<WR[_\=L%U'"&T[_OAS-<
    34 EOQ.?/KX7;T[N%.^KS9M;[/SJ\!WR@OD(;K_S_@31?$4;S1@`````
     1begin 644 cyc5_lp.res.gz
     2M'XL("/H&>U4``V-Y8S5?;'`N<F5S`.U82V_C-A"^^U<0BQXDV-)J^!"E!%D4
     3MVP*+!1:]I+=%4=B6$FOA1(;I=-O]]9T9ZF5)<8NB0'LP`P_(>7'(T7PD<__S
     4MCQ]_$D+`.R3'ZOE1',6=DDFB5L%ZM5EM5\6J#%?[P^WBOE&5I%H5Y7HOJKOU
     5M<K/<+HN56&^6F^UR6RS7Y;(H:;Q%!@XWY7)=E"@I5YT+%8N^D2;^4&V#>FM4
     6M)$/OHB@CZ&?6-'-].%7U<W`XUJ>P%YD^J"]PYT[%P^/^*:A0`_NB>A8!+RH\
     7M6U50'`(3KGX(%Y]UDIL;^0L$.G0R4*%3@0R==M0UCKBHZ8(T3"/G`HO=''\`
     8M862)`8I&I`$VC"(715F$_908&1*9$"$EF881=R/?\JA1A"0`\BDE$<-R[&AR
     9M!Q"US8&D.5RC#(T?=\YTH'@Z#L4[2L+.1P2:#&3'`1/1VK"#RPMH;K#(7@3W
     10M-]T,H[;`!!0OVY/8'JM3><24W$"2B^UNC9O=\Y24BYC:DDCD?]$R&HXB[BR7
     11MV&'2R?R(:=MBUA\J<>M4SBR6V(B,8R?&XK>B>KH3VOCP_FZ;.KO4_B?*796D
     12M5"6N^E8&7R"\Q?[;MSP4P7,=B_I!'.K]'RZD>MG63X>74UF(#^\7IG-@!V4F
     13MJ<QVU7[#9=;H"V*4QY-PF/_2B:_5:2>:$F1XF=;AZGM?B2E7XM>R>MR=G'AQ
     14M./=#?1PYO!&PZOX6GR&1Z@:F9>L,#9JRC5Q*7_>_4;9Y7[9<I$BR,.HDKI%"
     15MTI8N-ZY+8L.X3EMQ%GHEJFXJW[-);5?C/6R0-Q5Q\(-$<UUS'9NVCM-HME:S
     16M;%*JJ4D8+#EEM.OSL,GIVC-P8M+`PV>?!Z!$Z(0RH7)&4!Q$F`^2!)HRHG%_
     17M<:O<#M.B:2,,B0PGB[;4T/X;VG]#V^9VOMG`J$[%>BFN%FB/4@+-E$PLI<R2
     18M0ZL'QEW+O.>4-%+36;$72UYLOZ,38VQY$ZTZ"]2[TUVBVO'8`X+\8!%L*1O-
     19M(+4^?+*W/:ZW\2%1<PL":!S1PE-RGE)8*6V.7Y#VGR;VN`CRYFBQ67AAG>Q:
     20M#E-CNY#[F?H-3'R`PTE<D/E#YS7_[30JT-GY9S!,[V![+OOI'>I`D9VB>!3%
     21M0Y]BH&DWM+G@!DQ7>%S2:$@V:MX&T@8EN&`I1CF-$6P#,&>:9QK97VKD`>BP
     22M@0["I*%0)H1GKM?H)?"J1`XEZ5"B`J!4$C+V3,W0"=W,THP9Z9AAQXQLS,A'
     23M#)6T`-V,(>@B4PSNU%%,-5/#-&5JF69,<Z(Z80I,)5.VU6RKV5:SK69;S;::
     24M;0W;&K8U;&O8UN@FGAE$U3E,(!7`YOEB="0.3,`NBG)7/]6/Y7/U;4T7VX6K
     25MG@[[ZJ':^F'UM#Z(4_W:X=EA,:)P>TAG_2DO_]$IG[_S1B_N!0_Z#\>ZW#R7
     26M1[%9N\HU)AP<G\_[\G=1'XN2`FP]0!+W]X1$T$6!+PG^FCUS7O,UFV_8*$C/
     27M#FNL"N=L\U5"\\4T/;3*Z!X[.,EC_JIC%^=Q>Y(W!VY[A</@N(IB7VT..1"W
     28M)ZY!-M<Q*O+ASF!`5C+V)[[SJF3'C6_LI*#B5L*M*649]B.:2K-_28'&$[V8
     29MG(*)I_8354CC^9E\`_NZAR:`9H#PXY\<K7+LSJ^\D`\"?34BF<0C=FLO(1Y'
     30M-XE:RE=%)%47A$[JB[;F@JF3Z42:](YMOZ1^.YS,XC&/5ID/UM\UE<PQ8595
     31MSG$=`MX<5\]RS2PWG>7:66XVR\WGN'IN;0X!%]OH`:)E1)6-';RS(@`C^B+T
     32M(NXBZ"+B(MPBUB+0(LHBQ!KC3.KF'I@J-Q.,S1/=P0[TR)<@W'2(!H/_67P1
     33M=^*Q@;3KR^7Z<KF^7*XOE^O+Y?IRN;Y<_O.7"ZC^_#X[OO4[\>GC>_'FY$[Q
     34:OMJ\N<7.KPX?(2^8AO#VN\6??X;5&\<8````
    3535`
    3636end
  • Tst/Short/cyc5_lp.stat

    r257093d r7036d0  
    1 1 >> tst_memory_0 :: 1231858763:3100-2009010717:3-1-0:ix86-Linux:nepomuck:347188 1292524760:3120- 13145 :3-1-2:ix86-Linux:mamawutz:358008
    2 1 >> tst_memory_1 :: 1231858763:3100-2009010717:3-1-0:ix86-Linux:nepomuck:1426212 1292524760:3120- 13145 :3-1-2:ix86-Linux:mamawutz:1342768
    3 1 >> tst_memory_2 :: 1231858763:3100-2009010717:3-1-0:ix86-Linux:nepomuck:1909540 1292524760:3120- 13145 :3-1-2:ix86-Linux:mamawutz:1938572
    4 1 >> tst_timer_1 :: 1231858763:3100-2009010717:3-1-0:ix86-Linux:nepomuck:91 1292524760:3120- 13145 :3-1-2:ix86-Linux:mamawutz:36
     11 >> tst_memory_0 :: 1434126079:4020, 64 bit:4.0.2:x86_64-Linux:dilbert:457928
     21 >> tst_memory_1 :: 1434126079:4020, 64 bit:4.0.2:x86_64-Linux:dilbert:4329472
     31 >> tst_memory_2 :: 1434126079:4020, 64 bit:4.0.2:x86_64-Linux:dilbert:4347232
     41 >> tst_timer_1 :: 1434126079:4020, 64 bit:4.0.2:x86_64-Linux:dilbert:1830
  • Tst/Short/ok_s.lst

    r257093d r7036d0  
    4444bug_tr707
    4545bug_tr709
     46bug_tr723
     47bug_tr724
    4648bug_genus_etc
    4749conv_bi
  • libpolys/coeffs/numbers.cc

    r257093d r7036d0  
    228228number ndCopyMap(number a, const coeffs aRing, const coeffs r)
    229229{
    230   assume( getCoeffType(r) == getCoeffType(aRing) );
     230  // aRing and r need not be the same, but must be the same representation
     231  assume(aRing->rep==r->rep);
    231232  if ( nCoeff_has_simple_Alloc(r) && nCoeff_has_simple_Alloc(aRing) )
    232233    return a;
  • libpolys/coeffs/rintegers.cc

    r257093d r7036d0  
    339339{
    340340  /* dst = currRing */
    341   if (nCoeff_is_Ring_Z(src) || nCoeff_is_Ring_ModN(src) || nCoeff_is_Ring_PtoM(src))
     341  /* dst = nrn */
     342  if ((src->rep==n_rep_gmp)
     343  && (nCoeff_is_Ring_Z(src) || nCoeff_is_Ring_ModN(src) || nCoeff_is_Ring_PtoM(src)))
     344  {
     345    return ndCopyMap; //nrzCopyMap;
     346  }
     347  if ((src->rep==n_rep_gap_gmp) /*&& nCoeff_is_Ring_Z(src)*/)
    342348  {
    343349    return ndCopyMap; //nrzCopyMap;
  • libpolys/polys/ext_fields/transext.cc

    r257093d r7036d0  
    193193  {
    194194    p_Test(den, ntRing);
    195 
    196195    if(p_IsConstant(den, ntRing) && (n_IsOne(pGetCoeff(den), ntCoeffs)))
    197196    {
     
    199198      return FALSE;
    200199    }
    201 
    202200    if( !n_GreaterZero(pGetCoeff(den), ntCoeffs) )
    203201    {
     
    205203      return FALSE;
    206204    }
    207 
    208205    // test that den is over integers!?
    209 
    210   } else
     206  }
     207  else
    211208  {  // num != NULL // den == NULL
    212 
    213209//    if( COM(t) != 0 )
    214210//    {
     
    343339  if (IS0(a)) return NULL;
    344340  fraction f = (fraction)a;
    345   poly g = p_Copy(NUM(f), ntRing);
    346   poly h = NULL; if (!DENIS1(f)) h = p_Copy(DEN(f), ntRing);
    347   fraction result = (fraction)omAllocBin(fractionObjectBin);
    348   NUM(result) = g;
    349   DEN(result) = h;
     341  poly g = NUM(f);
     342  poly h = NULL;
     343  h =DEN(f);
     344  fraction result = (fraction)omAlloc0Bin(fractionObjectBin);
     345  NUM(result) = p_Copy(g,cf->extRing);
     346  DEN(result) = p_Copy(h,cf->extRing);
    350347  COM(result) = COM(f);
    351348  ntTest((number)result);
     
    384381    if( !n_GreaterZero(g, ntCoeffs) )
    385382    {
    386       NUM (f) = p_Neg(NUM (f), ntRing); // Ugly :(((
     383      NUM (f) = p_Neg(NUM (f), ntRing);
    387384      g = n_InpNeg(g, ntCoeffs);
    388385    }
     
    393390    if( !n_IsOne(g, ntCoeffs) )
    394391    {
    395       DEN (f) = p_NSet(g, ntRing); // update COM(f)???
     392      DEN (f) = p_NSet(g, ntRing);
    396393      COM (f) ++;
    397394      assume( DEN (f) != NULL );
     
    12501247
    12511248  if (IS0(a)) return;
     1249  if (DENIS1(f) || NUMIS1(f)) { COM(f) = 0; return; }
    12521250  if (!simpleTestsHaveAlreadyBeenPerformed)
    12531251  {
    1254     if (DENIS1(f) || NUMIS1(f)) { COM(f) = 0; return; }
    12551252
    12561253    /* check whether NUM(f) = DEN(f), and - if so - replace 'a' by 1 */
     
    12601257      p_Delete(&DEN(f), ntRing); DEN(f) = NULL;
    12611258      COM(f) = 0;
    1262       ntTest(a); // !!!!
     1259      ntTest(a);
    12631260      return;
    12641261    }
     
    14551452    //PrintS(" den=");p_wrp(DEN(a),ntRing);PrintLn();
    14561453    definiteGcdCancellation(a, cf, FALSE);
    1457     fraction f=(fraction)a;
    1458     if ((DEN(f)!=NULL)
    1459     &&(!n_GreaterZero(pGetCoeff(DEN(f)),ntCoeffs)))
    1460     {
    1461       NUM(f)=p_Neg(NUM(f),ntRing);
    1462       DEN(f)=p_Neg(DEN(f),ntRing);
    1463       a=(number)f;
     1454    if ((DEN((fraction)a)!=NULL)
     1455    &&(!n_GreaterZero(pGetCoeff(DEN((fraction)a)),ntCoeffs)))
     1456    {
     1457      NUM((fraction)a)=p_Neg(NUM((fraction)a),ntRing);
     1458      DEN((fraction)a)=p_Neg(DEN((fraction)a),ntRing);
    14641459    }
    14651460  }
     
    18431838  fraction f = (fraction)a;
    18441839  poly g = prMapR(NUM(f), nMap, rSrc, rDst);
     1840  /* g may contain summands with coeff 0 */
     1841  poly hh=g;
     1842  poly prev=NULL;
     1843  while(hh!=NULL)
     1844  {
     1845    if (n_IsZero(pGetCoeff(hh),rDst->cf))
     1846    {
     1847      if (prev==NULL)
     1848      {
     1849        g=p_LmFreeAndNext(g,rDst);
     1850        hh=g;
     1851      }
     1852      else
     1853      {
     1854        prev->next=p_LmFreeAndNext(prev->next,rDst);
     1855        hh=prev->next;
     1856      }
     1857    }
     1858    else
     1859    {
     1860      prev=hh;
     1861      pIter(hh);
     1862    }
     1863  }
     1864  if (g==NULL) return NULL;
    18451865
    18461866  poly h = NULL;
    18471867
    18481868  if (!DENIS1(f))
     1869  {
    18491870     h = prMapR(DEN(f), nMap, rSrc, rDst);
     1871     /* h may contain summands with coeff 0 */
     1872    hh=h;
     1873    prev=NULL;
     1874    while(hh!=NULL)
     1875    {
     1876      if (n_IsZero(pGetCoeff(hh),rDst->cf))
     1877      {
     1878        if (prev==NULL)
     1879        {
     1880          h=p_LmFreeAndNext(h,rDst);
     1881          hh=h;
     1882        }
     1883        else
     1884        {
     1885          prev->next=p_LmFreeAndNext(prev->next,rDst);
     1886          hh=prev->next;
     1887        }
     1888      }
     1889      else
     1890      {
     1891        prev=hh;
     1892        pIter(hh);
     1893      }
     1894    }
     1895    if (h==NULL) WerrorS("mapping to */0");
     1896  }
    18501897
    18511898  fraction result = (fraction)omAllocBin(fractionObjectBin);
  • libpolys/polys/monomials/p_polys.cc

    r257093d r7036d0  
    351351#ifndef SING_NDEBUG
    352352#if MYTEST
    353           Print("p_Setm_General: ro_isTemp ord: pos: %d, p: ", pos);  p_DebugPrint(p, r, r, 1);
     353          Print("p_Setm_General: ro_isTemp ord: pos: %d, p: ", pos);  p_wrp(p, r);
    354354#endif
    355355#endif
     
    388388#if MYTEST
    389389//          if( p->exp[o->data.isTemp.start] > 0 )
    390             PrintS("after Values: "); p_DebugPrint(p, r, r, 1);
     390            PrintS("after Values: "); p_wrp(p, r);
    391391#endif
    392392#endif
     
    399399#ifndef SING_NDEBUG
    400400#if MYTEST
    401           Print("p_Setm_General: ro_is ord: pos: %d, p: ", pos);  p_DebugPrint(p, r, r, 1);
     401          Print("p_Setm_General: ro_is ord: pos: %d, p: ", pos);  p_wrp(p, r);
    402402#endif
    403403#endif
     
    417417#ifndef SING_NDEBUG
    418418#if MYTEST
    419             Print("p_Setm_General: ro_is : in rSetm: pos: %d, c: %d >  limit: %d\n", c, pos, limit); // p_DebugPrint(p, r, r, 1);
     419            Print("p_Setm_General: ro_is : in rSetm: pos: %d, c: %d >  limit: %d\n", c, pos, limit);
    420420            PrintS("preComputed Values: ");
    421             p_DebugPrint(p, r, r, 1);
     421            p_wrp(p, r);
    422422#endif
    423423#endif
     
    447447#if MYTEST
    448448            Print("Respective F[c - %d: %d] pp: ", limit, c);
    449             p_DebugPrint(pp, r, r, 1);
     449            p_wrp(pp, r);
    450450#endif
    451451#endif
     
    492492            // TODO: how to check this for computed values???
    493493#if MYTEST
    494             PrintS("Computed Values: "); p_DebugPrint(p, r, r, 1);
     494            PrintS("Computed Values: "); p_wrp(p, r);
    495495#endif
    496496#endif
     
    511511#if MYTEST
    512512            Print("ELSE p_Setm_General: ro_is :: c: %d <= limit: %d, vo: %d, exp: %d\n", c, limit, vo, p->exp[vo]);
    513             p_DebugPrint(p, r, r, 1);
     513            p_wrp(p, r);
    514514#endif
    515515#endif
     
    38473847    if( !DENIS1((fraction)z) )
    38483848    {
    3849       if (p_IsConstant(DEN((fraction)z),srcExtRing))
    3850       {
    3851         number n=pGetCoeff(DEN((fraction)z));
    3852         zz=p_Div_nn(zz,n,srcExtRing);
    3853         p_Normalize(zz,srcExtRing);
    3854       }
    3855       else
     3849      if (!p_IsConstant(DEN((fraction)z),srcExtRing))
    38563850        WarnS("Not defined: Cannot map a rational fraction and make a polynomial out of it! Ignoring the denumerator.");
    38573851    }
     
    38853879    qq = p_PermPoly(zz, par_perm-1, srcExtRing, dst, nMap, NULL, rVar (srcExtRing)-1);
    38863880
     3881  if(nCoeff_is_transExt(srcCf)
     3882  && (!DENIS1((fraction)z))
     3883  && p_IsConstant(DEN((fraction)z),srcExtRing))
     3884  {
     3885    number n=nMap(pGetCoeff(DEN((fraction)z)),srcExtRing->cf, dstCf);
     3886    qq=p_Div_nn(qq,n,dst);
     3887    n_Delete(&n,dstCf);
     3888    p_Normalize(qq,dst);
     3889  }
    38873890  p_Test (qq, dst);
    3888 
    3889 //       poly p_PermPoly (poly p, int * perm, const ring oldRing, const ring dst, nMapFunc nMap, int *par_perm, int OldPar)
    3890 
    3891 //  assume( FALSE );  WarnS("longalg missing 2");
    38923891
    38933892  return qq;
     
    39053904    PrintS("\np_PermPoly::p: "); p_Write(p, oldRing, oldRing); PrintLn();
    39063905#endif
    3907 
    39083906  const int OldpVariables = rVar(oldRing);
    39093907  poly result = NULL;
     
    39113909  poly aq = NULL; /* the map coefficient */
    39123910  poly qq; /* the mapped monomial */
    3913 
    39143911  assume(dst != NULL);
    39153912  assume(dst->cf != NULL);
    3916 
    39173913  while (p != NULL)
    39183914  {
     
    39223918      qq = p_Init(dst);
    39233919      assume( nMap != NULL );
    3924 
    39253920      number n = nMap(p_GetCoeff(p, oldRing), oldRing->cf, dst->cf);
    3926 
    39273921      n_Test (n,dst->cf);
    3928 
    39293922      if ( nCoeff_is_algExt(dst->cf) )
    39303923        n_Normalize(n, dst->cf);
    3931 
    39323924      p_GetCoeff(qq, dst) = n;// Note: n can be a ZERO!!!
    3933       // coef may be zero:
    3934 //      p_Test(qq, dst);
    39353925    }
    39363926    else
    39373927    {
    39383928      qq = p_One(dst);
    3939 
    39403929//      aq = naPermNumber(p_GetCoeff(p, oldRing), par_perm, OldPar, oldRing); // no dst???
    39413930//      poly    n_PermNumber(const number z, const int *par_perm, const int P, const ring src, const ring dst)
    39423931      aq = n_PermNumber(p_GetCoeff(p, oldRing), par_perm, OldPar, oldRing, dst);
    3943 
    39443932      p_Test(aq, dst);
    3945 
    39463933      if ( nCoeff_is_algExt(dst->cf) )
    39473934        p_Normalize(aq,dst);
    3948 
    39493935      if (aq == NULL)
    39503936        p_SetCoeff(qq, n_Init(0, dst->cf),dst); // Very dirty trick!!!
    3951 
    39523937      p_Test(aq, dst);
    39533938    }
    3954 
    39553939    if (rRing_has_Comp(dst))
    39563940       p_SetComp(qq, p_GetComp(p, oldRing), dst);
    3957 
    39583941    if ( n_IsZero(pGetCoeff(qq), dst->cf) )
    39593942    {
     
    39813964              assume( dst->cf->extRing == NULL );
    39823965              number ee = n_Param(1, dst);
    3983 
    39843966              number eee;
    39853967              n_Power(ee, e, &eee, dst->cf); //nfDelete(ee,dst);
    3986 
    39873968              ee = n_Mult(c, eee, dst->cf);
    39883969              //nfDelete(c,dst);nfDelete(eee,dst);
     
    39933974              const int par = -perm[i];
    39943975              assume( par > 0 );
    3995 
    39963976//              WarnS("longalg missing 3");
    39973977#if 1
    39983978              const coeffs C = dst->cf;
    39993979              assume( C != NULL );
    4000 
    40013980              const ring R = C->extRing;
    40023981              assume( R != NULL );
    4003 
    40043982              assume( par <= rVar(R) );
    4005 
    40063983              poly pcn; // = (number)c
    4007 
    40083984              assume( !n_IsZero(c, C) );
    4009 
    40103985              if( nCoeff_is_algExt(C) )
    40113986                 pcn = (poly) c;
    40123987               else //            nCoeff_is_transExt(C)
    40133988                 pcn = NUM((fraction)c);
    4014 
    40153989              if (pNext(pcn) == NULL) // c->z
    40163990                p_AddExp(pcn, -perm[i], e, R);
     
    40203994                p_SetExp(mmc, -perm[i], e, R);
    40213995                p_Setm(mmc, R);
    4022 
    40233996                number nnc;
    40243997                // convert back to a number: number nnc = mmc;
     
    40274000                else //            nCoeff_is_transExt(C)
    40284001                  nnc = ntInit(mmc, C);
    4029 
    40304002                p_GetCoeff(qq, dst) = n_Mult((number)c, nnc, C);
    40314003                n_Delete((number *)&c, C);
    40324004                n_Delete((number *)&nnc, C);
    40334005              }
    4034 
    40354006              mapped_to_par=1;
    40364007#endif
     
    40754046      if (aq!=NULL)
    40764047         qq=p_Mult_q(aq,qq,dst);
    4077 
    40784048      aq = qq;
    4079 
    40804049      while (pNext(aq) != NULL) pIter(aq);
    4081 
    40824050      if (result_last==NULL)
    40834051      {
     
    40964064    }
    40974065  }
    4098 
    40994066  result=p_SortAdd(result,dst);
    41004067#else
     
    41274094#endif
    41284095  p_Test(result,dst);
    4129 
    41304096#if 0
    41314097  p_Test(result,dst);
  • libpolys/polys/monomials/ring.cc

    r257093d r7036d0  
    42464246
    42474247
    4248 #ifndef SING_NDEBUG
    4249 /// debug-print at most nTerms (2 by default) terms from poly/vector p,
    4250 /// assuming that lt(p) lives in lmRing and tail(p) lives in tailRing.
    4251 void p_DebugPrint(const poly p, const ring lmRing, const ring tailRing, const int nTerms)
    4252 {
    4253   assume( nTerms >= 0 );
    4254   if( p != NULL )
    4255   {
    4256     assume( p != NULL );
    4257 
    4258     p_Write(p, lmRing, tailRing);
    4259 
    4260     if( (p != NULL) && (nTerms > 0) )
    4261     {
    4262       assume( p != NULL );
    4263       assume( nTerms > 0 );
    4264 
    4265       // debug pring leading term
    4266       m_DebugPrint(p, lmRing);
    4267 
    4268       poly q = pNext(p); // q = tail(p)
    4269 
    4270       // debug pring tail (at most nTerms-1 terms from it)
    4271       for(int j = nTerms - 1; (q !=NULL) && (j > 0); pIter(q), --j)
    4272         m_DebugPrint(q, tailRing);
    4273 
    4274       if (q != NULL)
    4275         PrintS("...\n");
    4276     }
    4277   }
    4278   else
    4279     PrintS("0\n");
    4280 }
    4281 #endif
    4282 
    4283 
    42844248//    F = system("ISUpdateComponents", F, V, MIN );
    42854249//    // replace gen(i) -> gen(MIN + V[i-MIN]) for all i > MIN in all terms from F!
     
    42964260#ifdef PDEBUG
    42974261    Print("F[%d]:", j);
    4298     p_DebugPrint(F->m[j], r, r, 0);
     4262    p_wrp(F->m[j], r);
    42994263#endif
    43004264
     
    43154279    Print("new F[%d]:", j);
    43164280    p_Test(F->m[j], r);
    4317     p_DebugPrint(F->m[j], r, r, 0);
    4318 #endif
    4319   }
    4320 
    4321 }
    4322 
    4323 
    4324 
     4281    p_wrp(F->m[j], r);
     4282#endif
     4283  }
     4284}
    43254285
    43264286/*2
  • libpolys/polys/monomials/ring.h

    r257093d r7036d0  
    801801#endif
    802802
    803 #ifndef SING_NDEBUG
    804 /// debug-print at most nTerms (2 by default) terms from poly/vector p,
    805 /// assuming that lt(p) lives in lmRing and tail(p) lives in tailRing.
    806 void p_DebugPrint(const poly p, const ring lmRing, const ring tailRing, const int nTerms = 2);
    807 #endif
    808 
    809803int64 * rGetWeightVec(ring r);
    810804void rSetWeightVec(ring r, int64 *wv);
  • libpolys/polys/polys0.cc

    r257093d r7036d0  
    3030  const BOOLEAN bNotShortOut = (rShortOut(r) == FALSE);
    3131
    32   if (pGetCoeff(p)!=NULL)
    33     n_Normalize(pGetCoeff(p),C);
    34 
    35   if (((p_GetComp(p,r) == (short)ko)
     32  if (((p_GetComp(p,r) == ko)
    3633    &&(p_LmIsConstantComp(p, r)))
    3734  || ((!n_IsOne(pGetCoeff(p),C))
     
    123120  // Just think of other ring using the VERY SAME naRing and possible
    124121  // side-effects...
     122  // but this is not a problem: i/o is not thread-safe anyway.
    125123  const BOOLEAN bLMShortOut = rShortOut(lmRing);
    126124  const BOOLEAN bTAILShortOut = rShortOut(tailRing);
     
    144142  }
    145143  p_Normalize(p,lmRing);
     144  if ((n_GetChar(lmRing->cf) == 0)
     145  && (nCoeff_is_transExt(lmRing->cf)))
     146    p_Normalize(p,lmRing); /* Manual/absfact.tst */
    146147  if ((p_GetComp(p, lmRing) == 0) || (!lmRing->VectorOut))
    147148  {
     
    244245    r = pNext(pNext(p));
    245246    pNext(pNext(p)) = NULL;
    246     p_Write0(p, lmRing, tailRing);
     247    p_Write0(p, tailRing);
    247248    if (r!=NULL)
    248249    {
  • libpolys/polys/simpleideals.cc

    r257093d r7036d0  
    7373    for (int i = 0; i <= j; i++)
    7474    {
    75       Print("generator %d: ",i); p_DebugPrint(id->m[i], lmRing, tailRing, debugPrint);
     75      Print("generator %d: ",i); p_wrp(id->m[i], lmRing, tailRing);
    7676    }
    7777  }
Note: See TracChangeset for help on using the changeset viewer.