Changeset 75def9 in git
- Timestamp:
- Apr 18, 2018, 6:11:34 PM (5 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- 458174a01ed388fe1f5bcb6624bc7f13f0223860
- Parents:
- fba1c3965fbbe8b7c8b52cb5e07338d93c09aab483789eef751cc6cbd6f5106c113ccb43c6af36b0
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile.am
rfba1c39 r75def9 20 20 if test -e $(srcdir)/doc/doc.tbz2; then\ 21 21 (cat ${top_srcdir}/doc/doc.tbz2| (cd $(DESTDIR)$(datadir)/singular; tar jxf -));\ 22 -mkdir $(DESTDIR)$(datadir)/info;\23 -mkdir $(DESTDIR)$(datadir)/doc;\22 mkdir $(DESTDIR)$(datadir)/info;\ 23 mkdir $(DESTDIR)$(datadir)/doc;\ 24 24 mv $(DESTDIR)$(datadir)/singular/singular.hlp $(DESTDIR)$(datadir)/info/.;\ 25 25 mv $(DESTDIR)$(datadir)/singular/singular.idx $(DESTDIR)$(datadir)/doc/.;\ -
Singular/LIB/fpaprops.lib
r83789ee r75def9 18 18 19 19 PROCEDURES: 20 lpNoetherian(<GB>); check whether A/< GB> is (left/right) noetherian20 lpNoetherian(<GB>); check whether A/<LM(GB)> is (left/right) Noetherian 21 21 lpIsSemiPrime(<GB>); check whether A/<LM(GB)> is semi prime 22 22 lpIsPrime(<GB>); check whether A/<LM(GB)> is prime … … 33 33 "USAGE: lpNoetherian(G); G an ideal in a Letterplace ring 34 34 RETURN: int 35 @* 0 not noetherian 36 @* 1 left noetherian 37 @* 2 right noetherian 38 @* 3 noetherian 39 PURPOSE: Check whether A/<G> is (left/right) noetherian 35 @* 0 not Noetherian 36 @* 1 left Noetherian 37 @* 2 right Noetherian 38 @* 3 Noetherian 39 @* 4 weak Noetherian 40 PURPOSE: Check whether the monomial algebra A/<LM(G)> is (left/right) noetherian 40 41 ASSUME: - basering is a Letterplace ring 41 42 @* - G is a Groebner basis 43 THEORY: lpNoetherian works with the monomial algebra A/<LM(G)>. 44 If it gives an affirmative answer for one of the properties, then it 45 holds for both A/<LM(G)> and A/<G>. However, a negative answer applies 46 only to A/<LM(G)> and not necessarily to A/<G>. 47 NOTE: Weak Noetherian means that two-sided ideals in A/<LM(G)> satisfy 48 the acc (ascending chain condition). 42 49 " 43 50 { … … 91 98 intvec visited; 92 99 visited[ncols(UG)] = 0; 93 int inFlag, outFlag ;100 int inFlag, outFlag, inOutFlag; 94 101 for (int v = 1; v <= ncols(UG) && (inFlag + outFlag) != 3; v++) { 95 int inOutFlags = inO rOutCommingEdgeInCycle(UG, v, visited, 0);102 int inOutFlags = inOutCommingEdgesInCycles(UG, v, visited, 0); 96 103 if (inOutFlags == 1) { 97 104 inFlag = 1; 98 105 } 99 106 if (inOutFlags == 2) { 100 outFlag = 2;107 outFlag = 1; 101 108 } 102 109 if (inOutFlags == 3) { 103 110 inFlag = 1; 104 outFlag = 2; 111 outFlag = 1; 112 } 113 if (inOutFlags == 4) { 114 inOutFlag = 1; 115 } 116 if (inOutFlags == 5) { 117 inFlag = 1; 118 inOutFlag = 1; 119 } 120 if (inOutFlags == 6) { 121 outFlag = 1; 122 inOutFlag = 1; 123 } 124 if (inOutFlags == 7) { 125 inFlag = 1; 126 outFlag = 1; 127 inOutFlag = 1; 105 128 } 106 129 kill inOutFlags; 107 130 } kill v; 108 return (3 - inFlag - outFlag); 131 int noetherian = 3 - 1*inFlag - 2*outFlag; 132 if (noetherian == 0) { 133 return (4 - 4*inOutFlag); // weak noetherian 134 } 135 return (noetherian); 109 136 } 110 137 example … … 118 145 } 119 146 120 static proc inO rOutCommingEdgeInCycle(intmat G, int v, intvec visited, intvec path) {147 static proc inOutCommingEdgesInCycles(intmat G, int v, intvec visited, intvec path) { 121 148 // Mark the current vertex as visited 122 149 visited[v] = 1; … … 129 156 } 130 157 131 int inFlag, outFlag ;158 int inFlag, outFlag, inOutFlag; 132 159 133 160 for (int w = 1; w <= ncols(G) && (inFlag + outFlag) != 3; w++) { 134 161 if (G[v,w] == 1) { 135 if (visited[w] == 1) { 136 // new cycle 137 if (v == w) { 162 if (visited[w] == 1) { // new cycle 163 int tmpInFlag; 164 int tmpOutFlag; 165 if (v == w) { // cycle is a loop 138 166 for (int u = 1; u <= ncols(G); u++) { 139 167 if (G[v,u] && u != v) { 140 outFlag = 2; 168 outFlag = 1; 169 tmpOutFlag = 1; 141 170 } 142 171 if (G[u,v] && u != v) { 143 172 inFlag = 1; 173 tmpInFlag = 1; 144 174 } 145 175 } kill u; … … 151 181 if (path[i] != v) { 152 182 if (u != path[i+1]) { // and u is not the next element in the cycle 153 outFlag = 2; 183 outFlag = 1; 184 tmpOutFlag = 1; 154 185 } 155 186 } else { 156 187 if (u != w) { 157 outFlag = 2; 188 outFlag = 1; 189 tmpOutFlag = 1; 158 190 } 159 191 } … … 163 195 if (u != path[i-1]) { // and u is not the previous element in the cylce 164 196 inFlag = 1; 197 tmpInFlag = 1; 165 198 } 166 199 } else { 167 200 if (u != v) { 168 201 inFlag = 1; 202 tmpInFlag = 1; 169 203 } 170 204 } … … 176 210 } kill i; 177 211 } 212 if (tmpInFlag > 0 && tmpOutFlag > 0) { 213 // there are both in and outcomming edges in this cycle 214 inOutFlag = 1; 215 } 216 kill tmpInFlag; 217 kill tmpOutFlag; 178 218 } else { 179 int inOutFlags = inO rOutCommingEdgeInCycle(G, w, visited, path);219 int inOutFlags = inOutCommingEdgesInCycles(G, w, visited, path); 180 220 if (inOutFlags == 1) { 181 221 inFlag = 1; 182 222 } 183 223 if (inOutFlags == 2) { 184 outFlag = 2;224 outFlag = 1; 185 225 } 186 226 if (inOutFlags == 3) { 187 227 inFlag = 1; 188 outFlag = 2; 228 outFlag = 1; 229 } 230 if (inOutFlags == 4) { 231 inOutFlag = 1; 232 } 233 if (inOutFlags == 5) { 234 inFlag = 1; 235 inOutFlag = 1; 236 } 237 if (inOutFlags == 6) { 238 outFlag = 1; 239 inOutFlag = 1; 240 } 241 if (inOutFlags == 7) { 242 inFlag = 1; 243 outFlag = 1; 244 inOutFlag = 1; 189 245 } 190 246 kill inOutFlags; … … 193 249 } kill w; 194 250 195 return ( inFlag + outFlag);251 return (1*inFlag + 2*outFlag + 4*inOutFlag); 196 252 } 197 253 … … 202 258 ASSUME: - basering is a Letterplace ring 203 259 - G is a Groebner basis 260 THEORY: lpIsSemiPrime works with the monomial algebra A/<LM(G)>. 261 A positive answer holds for both A/<LM(G)> and A/<G>, while 262 a negative answer applies only to A/<LM(G)> and not necessarily to 263 A/<G>. 204 264 " 205 265 { … … 303 363 ASSUME: - basering is a Letterplace ring 304 364 - G is a Groebner basis 365 THEORY: lpIsPrime works with the monomial algebra A/<LM(G)>. 366 A positive answer holds for both A/<LM(G)> and A/<G>, while 367 a negative answer applies only to A/<LM(G)> and not necessarily to A/<G>. 305 368 " 306 369 { -
Singular/iparith.cc
rfba1c39 r75def9 4714 4714 return TRUE; 4715 4715 } 4716 if (rField_is_numeric(currRing)) 4717 WarnS("groebner base computations with inexact coefficients can not be trusted due to rounding errors"); 4716 4718 intvec *w=(intvec *)atGet(u,"isHomog",INTVEC_CMD); 4717 4719 // tHomog hom=testHomog; … … 4820 4822 static BOOLEAN jjSTD(leftv res, leftv v) 4821 4823 { 4824 if (rField_is_numeric(currRing)) 4825 WarnS("groebner base computations with inexact coefficients can not be trusted due to rounding errors"); 4822 4826 ideal result; 4823 4827 ideal v_id=(ideal)v->Data(); -
Tst/Short/bug_solve.res.gz.uu
rfba1c39 r75def9 1 1 begin 640 bug_solve.res.gz 2 M'XL(")<F5UH"`V)U9U]S;VQV92YR97,`G5/+;MLP$+SK*P9!@4B)+$=R[*8R 3 MHD/;BX&@!>P`/01Q0$N4O:A,&B)E2_GZDK0CIX]3>>%J'[,[0^WB\>OL&X`X 4 MP\/L,RZTTE%%JXNIMSA%D@S&^4*"M!],/7LCR[!JUB]*5GL>"7Z(E&:ZKQAE 5 MZ.W;",,A7")*6:,FL58XD-X@E]M=Q5OD9=2GCZ/C&$?DWP>99*X:->[?:D/X 6 M;=@%(8K=.>]C!BHXJS`SB;[?#L;!57<=3X+A*`G1+9-!NQP-QE?M(+XY5]UE 7 M*'B)^;UK[<\,U1^L%J9ABI+E6M;TRC1)@2WKC(<J[RE^3CU3ZNZ)LQ)C#>*) 8 MYXRW4-R';CW/J''I6EPBKSG3O`!SO$*0P&%#^<8X*E(:B^\/D"5$LUWQ6L'7 9 M&]Z+9B`:.XT*+"(I*#,A+R+[]2C!\IPK!5OAH`S,7Y4A=+?C\*ET>8)M.>8X 10 M,`6F%*T%+RR8EBY:<]W4`GM6-3QPU-Q17+LWF4_MM-/SNW_*_HS]EUPGN/@F 11 M,S!VG%SRLJ2<N-`J-5.QZHF>_1.W]`X%K4D;:JPHR+(TO\&;,QCZM$RN8Z?8 12 M452KRYX9;5,DUGLZJTKF/^U2&+^L"^YH5+MW&>>3.N&4-5MT_P!)WH-\Z1G% 13 9YR6)D\BMF%VB1OEQ,/W@_0(@Z:JTF`,````` 2 M'XL("`U/UUH"`V)U9U]S;VQV92YR97,`G5-=;]HP%'W/KSBJ)C6A$)I06`=J 3 M'K:](%6;!)7V4)7*26[`6K"1[4#HKY]M*+"/I_G%U_?C^)QKW_G3U^DW`$F& 4 MQ^EG7!EMXIKG5Y-@?HRD&:SSE0MNPF@2N!U9AKQ9OFI9;RD6M(NU8>94,<AP 5 MLN]B]/OPB:BD@N)BJ;'C9H5"KC<UM2BJ^)0^C`\T#LB_$QEEOAH*#^^U781M 6 M=Q]U46[.>1\S\))8C:E-#,.V-XPZ^YMD%/4':1?[1=IK%X/>L-/VDMMSU7V& 7 MDBK,'OS5X=1*M<0['2R5I%R00LXT^8L;*Y9+<93!!;6L,#9"5<4+3L)H%$Q` 8 M2(.<8%2C#94H&VM+*-F(TLD@I:32P0^FA#V.45D0J?B;Q\::[:V'U\%S\C(. 9 M+#^_C[R56JN7C`)OO(>24^@N<,ROO8YK%(J8NY[YYG4M7>Q6O%A91\VUP?S[ 10 M(V0%T:QS4AJA6='I92Q$XY5&#I%K:,N0RMB=GB1849#6<!4>RL+\5=F%V6\( 11 M(:]\GF!KP@P[IL&TYDM!I0.S?7%11:91`EM6-Q1Y:7YI,O[A9Q/'=G+^7)^R 12 M/V/_U:XC7'*;61A'Y_(IQY85JY_Y2WC4-KY'R9?<6&FL++E3:?_:NS/JAWR1 13 MWB2^8X>FNKYLF>WM&*GS'E=>R^*GFSSKEZHD+Z/>7&2<U]@W3CNSQ?X?(.DE 14 =R)>3HN0\B4D:^SEVD]KH,(DF'X)?*.E(T_T#```` 14 15 ` 15 16 end -
Tst/Short/bug_solve.stat
rfba1c39 r75def9 1 1 >> tst_memory_0 :: 15 15660951:4104, 64 bit:4.1.0:x86_64-Linux:nepomuck:1957442 1 >> tst_memory_1 :: 15 15660951:4104, 64 bit:4.1.0:x86_64-Linux:nepomuck:22159363 1 >> tst_memory_2 :: 15 15660951:4104, 64 bit:4.1.0:x86_64-Linux:nepomuck:22159364 1 >> tst_timer_1 :: 15 15660951:4104, 64 bit:4.1.0:x86_64-Linux:nepomuck:41 1 >> tst_memory_0 :: 1524059917:4110, 64 bit:4.1.1:x86_64-Linux:nepomuck:195744 2 1 >> tst_memory_1 :: 1524059917:4110, 64 bit:4.1.1:x86_64-Linux:nepomuck:2215936 3 1 >> tst_memory_2 :: 1524059917:4110, 64 bit:4.1.1:x86_64-Linux:nepomuck:2215936 4 1 >> tst_timer_1 :: 1524059917:4110, 64 bit:4.1.1:x86_64-Linux:nepomuck:4
Note: See TracChangeset
for help on using the changeset viewer.