Changeset c7cdc1 in git


Ignore:
Timestamp:
Mar 31, 2000, 3:21:25 PM (24 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', '648d28f488f6ff08f5607ff229b9ad9e4a5b93c2')
Children:
600ac43bf6be4e2598175f66e5bf2093fb56aee3
Parents:
37fd1b8dae9760169b70a984b3f739af64cefbdc
Message:
*hannes: removed rComp-DEBUG


git-svn-id: file:///usr/local/Singular/svn/trunk@4249 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/polys-impl.cc

    r37fd1b rc7cdc1  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: polys-impl.cc,v 1.40 2000-03-27 16:06:21 Singular Exp $ */
     4/* $Id: polys-impl.cc,v 1.41 2000-03-31 13:21:25 Singular Exp $ */
    55
    66/***************************************************************
     
    926926}
    927927
    928 #ifdef HAVE_SHIFTED_EXPONENTS
    929 int rComp_a(poly p1, poly p2, int i)
    930 {
    931   int j;
    932   int o1=0;
    933   int o2=0;
    934   for(j=currRing->block0[i];j<=currRing->block1[i];j++)
    935   {
    936     o1+=pGetExp(p1,j)*currRing->wvhdl[i][j-currRing->block0[i]];
    937     o2+=pGetExp(p2,j)*currRing->wvhdl[i][j-currRing->block0[i]];
    938   }
    939   if (o1>o2)
    940   {
    941     return  1;
    942   }
    943   if (o1<o2)
    944   {
    945     return -1;
    946   }
    947   return 0;
    948 }
    949 int rComp_deg(poly p1, poly p2, int i)
    950 {
    951   int j;
    952   int o1=0;
    953   int o2=0;
    954   for(j=currRing->block0[i];j<=currRing->block1[i];j++)
    955   {
    956     o1+=pGetExp(p1,j);
    957     o2+=pGetExp(p2,j);
    958   }
    959   if (o1>o2) return 1;
    960   if (o1<o2) return -1;
    961   return 0;
    962 }
    963 int rComp_lex(poly p1, poly p2, int i)
    964 {
    965   int j;
    966   for(j=currRing->block0[i];j<=currRing->block1[i];j++)
    967   {
    968     if (pGetExp(p1,j) > pGetExp(p2,j))
    969     {
    970       return 1;
    971     }
    972     else if (pGetExp(p1,j) < pGetExp(p2,j))
    973     {
    974       return -1;
    975     }
    976   }
    977   return 0;
    978 }
    979 int rComp_revlex(poly p1, poly p2, int i)
    980 {
    981   int j;
    982   int e1,e2;
    983   for(j=currRing->block1[i];j>=currRing->block0[i];j--)
    984   {
    985     e1=pGetExp(p1,j);
    986     e2=pGetExp(p2,j);
    987     if (e1 < e2)
    988     {
    989       return  1;
    990     }
    991     else if (e1 > e2)
    992     {
    993       return -1;
    994     }
    995   }
    996   return 0;
    997 }
    998 int rComp0(poly p1, poly p2)
    999 {
    1000   int rr,r;
    1001   _prMonCmp(p1, p2, currRing, {rr=0;goto next_after_comp;}, {rr=1;goto next_after_comp;}, {rr=-1;goto next_after_comp;});
    1002   next_after_comp:
    1003   int n=rBlocks(currRing)-1;
    1004   int i,j;
    1005   // check fur syzcomp - special case, not visible in currRing->order
    1006   if ((currRing->typ!=NULL)
    1007   && (currRing->typ[0].ord_typ==ro_syz)
    1008   && (pGetComp(p1)!=pGetComp(p2)))
    1009   {
    1010     i=pGetComp(p1);
    1011     j=pGetComp(p2);
    1012 
    1013     if (i > currRing->typ[0].data.syz.limit)
    1014       i=currRing->typ[0].data.syz.curr_index;
    1015     else
    1016       i=currRing->typ[0].data.syz.syz_index[i];
    1017 
    1018     if (j > currRing->typ[0].data.syz.limit)
    1019       j=currRing->typ[0].data.syz.curr_index;
    1020     else
    1021       j=currRing->typ[0].data.syz.syz_index[j];
    1022 
    1023     if (i >j ) { assume(rr== -1); return -1;}
    1024     if (i <j ) { assume(rr== 1); return 1;}
    1025   }
    1026   for(i=0;i<n;i++)
    1027   {
    1028     switch (currRing->order[i])
    1029     {
    1030       case ringorder_a:
    1031         r=rComp_a(p1,p2,i);
    1032         if (r!=0) { assume(r==rr);return rr;}
    1033         break;
    1034 
    1035       case ringorder_c:
    1036         if (pGetComp(p1) < pGetComp(p2))
    1037         {
    1038           assume(rr==1);
    1039           return rr;
    1040         }
    1041         if (pGetComp(p1) > pGetComp(p2))
    1042         {
    1043           assume(rr==-1);
    1044           return rr;
    1045         }
    1046         break;
    1047 
    1048       case ringorder_C:
    1049         if (pGetComp(p1) > pGetComp(p2))
    1050         {
    1051           assume(rr==1);
    1052           return rr;
    1053         }
    1054         if (pGetComp(p1) < pGetComp(p2))
    1055         {
    1056           assume(rr==-1);
    1057           return rr;
    1058         }
    1059         break;
    1060 
    1061       case ringorder_M:
    1062         {
    1063           //assume(0); // not yet implemented
    1064           return rr;
    1065         }
    1066 
    1067       case ringorder_lp:
    1068         r=rComp_lex(p1,p2,i);
    1069         if (r!=0) { assume(r==rr);return rr;}
    1070         break;
    1071 
    1072       case ringorder_ls:
    1073         r= -rComp_lex(p1,p2,i);
    1074         if (r!=0) { assume(r==rr);return rr;}
    1075         break;
    1076 
    1077       case ringorder_dp:
    1078         r=rComp_deg(p1,p2,i);
    1079         if (r!=0) { assume(r==rr);return rr;}
    1080         r=rComp_revlex(p1,p2,i);
    1081         if (r!=0) { assume(r==rr);return rr;}
    1082         break;
    1083 
    1084       case ringorder_Dp:
    1085         r=rComp_deg(p1,p2,i);
    1086         if (r!=0) { assume(r==rr);return rr;}
    1087         r=rComp_lex(p1,p2,i);
    1088         if (r!=0) { assume(r==rr);return rr;}
    1089         break;
    1090 
    1091       case ringorder_ds:
    1092         r= -rComp_deg(p1,p2,i);
    1093         if (r!=0) { assume(r==rr);return rr;}
    1094         r=rComp_revlex(p1,p2,i);
    1095         if (r!=0) { assume(r==rr);return rr;}
    1096         break;
    1097 
    1098       case ringorder_Ds:
    1099         r= -rComp_deg(p1,p2,i);
    1100         if (r!=0) { assume(r==rr);return rr;}
    1101         r=rComp_lex(p1,p2,i);
    1102         if (r!=0) { assume(r==rr);return rr;}
    1103         break;
    1104 
    1105       case ringorder_wp:
    1106         r=rComp_a(p1,p2,i);
    1107         if (r!=0) { assume(r==rr);return rr;}
    1108         r=rComp_revlex(p1,p2,i);
    1109         if (r!=0) { assume(r==rr);return rr;}
    1110         break;
    1111 
    1112       case ringorder_Wp:
    1113         r=rComp_a(p1,p2,i);
    1114         if (r!=0) { assume(r==rr);return rr;}
    1115         r=rComp_lex(p1,p2,i);
    1116         if (r!=0) { assume(r==rr);return rr;}
    1117         break;
    1118 
    1119       case ringorder_ws:
    1120         r= -rComp_a(p1,p2,i);
    1121         if (r!=0) { assume(r==rr);return rr;}
    1122         r=rComp_revlex(p1,p2,i);
    1123         if (r!=0) { assume(r==rr);return rr;}
    1124         break;
    1125 
    1126       case ringorder_Ws:
    1127         r= -rComp_a(p1,p2,i);
    1128         if (r!=0) { assume(r==rr);return rr;}
    1129         r=rComp_lex(p1,p2,i);
    1130         if (r!=0) { assume(r==rr);return rr;}
    1131         break;
    1132 
    1133       case ringorder_S:
    1134         assume(0);
    1135         return rr;
    1136 
    1137       case ringorder_s:
    1138         /*  ro_syz */
    1139         // shall not appear:
    1140         if ((pGetComp(p1) > pDBsyzComp) && (pGetComp(p2) > pDBsyzComp)) break;
    1141         if ((pGetComp(p1) <= pDBsyzComp) && (pGetComp(p2) <= pDBsyzComp)) break;
    1142         if (pGetComp(p1) <= pDBsyzComp) { assume(rr==1); return rr;}
    1143         /* if (pGetComp(p2) <= pDBsyzComp) */
    1144         { assume (rr== -1); return rr; }
    1145 
    1146       case ringorder_unspec:
    1147       case ringorder_no:
    1148       default:
    1149           Print("undef. ringorder used\n");
    1150           break;
    1151     }
    1152   }
    1153   return rr;
    1154 }
    1155 #endif
    1156928#endif // PDEBUG
    1157929
Note: See TracChangeset for help on using the changeset viewer.