Changeset 5638b9 in git
- Timestamp:
- May 25, 2015, 8:32:35 PM (8 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- 2c2d2e89ad6e29cc2a1d2903129b937241868370
- Parents:
- 2675bd98cab28ad9ecfd872518826ad7e66b1935cb5589680933f4ddf0d5ae8b00c76e50b54220da
- Files:
-
- 62 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/deRham.lib
r2675bd r5638b9 3 3 category="Noncommutative"; 4 4 info=" 5 LIBRARY: de rham.lib Computation of deRham cohomology5 LIBRARY: deRham.lib Computation of deRham cohomology 6 6 7 7 AUTHORS: Cornelia Rottner, rottner@mathematik.uni-kl.de … … 16 16 localzation, and local cohomology groups}, J. Pure Appl. Algebra 156, 267-308 17 17 (2001) 18 [R] Rottner, C.: Computing de Rham Cohomology,diploma thesis (2012) 18 [R] Rottner, C.: Computing de Rham Cohomology,diploma thesis (2012)@* 19 19 [W1] Walther, U.: Algorithmic computation of local cohomology modules and the local 20 20 cohomological dimension of algebraic varieties}, J. Pure Appl. Algebra 139, 21 303-321 (1999) 21 303-321 (1999)@* 22 22 [W2] Walther, U.: Algorithmic computation of de Rham Cohomology of Complements of 23 Complex Affine Varieties}, J. Symbolic Computation 29, 796-839 (2000) 23 Complex Affine Varieties}, J. Symbolic Computation 29, 796-839 (2000)@* 24 24 [W3] Walther, U.: Computing the cup product structure for complements of complex 25 25 affine varieties, J. Pure Appl. Algebra 164, 247-273 (2001) -
Singular/LIB/grwalk.lib
rcb5589 r5638b9 255 255 } 256 256 257 proc gwalk(ideal Go, list #)258 "SYNTAX: gwalk(ideal i );259 gwalk(ideal i, int vec v, intvec w);257 proc gwalk(ideal Go, int reduction,int printout, list #) 258 "SYNTAX: gwalk(ideal i, int reduction, int printout); 259 gwalk(ideal i, int reduction, int printout, intvec v, intvec w); 260 260 TYPE: ideal 261 261 PURPOSE: compute the standard basis of the ideal, calculated via … … 274 274 string ord_str = OSCTW[2]; 275 275 intvec curr_weight = OSCTW[3]; /* original weight vector */ 276 intvec target_weight = OSCTW[4]; /* t erget weight vector */276 intvec target_weight = OSCTW[4]; /* target weight vector */ 277 277 kill OSCTW; 278 278 option(redSB); … … 284 284 //print("//** help ring = " + string(basering)); 285 285 ideal G = fetch(xR, Go); 286 G = system("Mwalk", G, curr_weight, target_weight,basering );286 G = system("Mwalk", G, curr_weight, target_weight,basering,reduction,printout); 287 287 288 288 setring xR; … … 299 299 //** compute a Groebner basis of I w.r.t. lp. 300 300 ring r = 32003,(z,y,x), lp; 301 ideal I = y3+xyz+y2z+xz3, 3+xy+x2y+y2z; 302 gwalk(I); 301 ideal I = zy2+yx2+yx+3, 302 z3x+y3+zyx-yx2-yx-3, 303 z2yx3-y5+z2yx2+y3x2+y2x3+y3x+y2x2+3z2x+3y2+3yx, 304 zyx5+y6-y4x2-y3x3+2zyx4-y4x-y3x2+zyx3-3z2yx+3zx3-3y3-3y2x+3zx2, 305 yx7-y7+y5x2+y4x3+3yx6+y5x+y4x2+3yx5-6zyx3+yx4+3x5+3y4+3y3x-6zyx2+6x4+3x3-9zx; 306 gwalk(I,0,1); 303 307 } 304 308 … … 346 350 } 347 351 348 proc fwalk(ideal Go, list #)349 "SYNTAX: fwalk(ideal i );350 fwalk(ideal i, int vec v, intvec w);352 proc fwalk(ideal Go, int reduction, int printout, list #) 353 "SYNTAX: fwalk(ideal i,int reductioin); 354 fwalk(ideal i, int reduction intvec v, intvec w); 351 355 TYPE: ideal 352 356 PURPOSE: compute the standard basis of the ideal w.r.t. the … … 372 376 373 377 ideal G = fetch(xR, Go); 374 G = system("Mfwalk", G, curr_weight, target_weight );378 G = system("Mfwalk", G, curr_weight, target_weight, reduction, printout); 375 379 376 380 setring xR; … … 387 391 ring r = 32003,(z,y,x), lp; 388 392 ideal I = y3+xyz+y2z+xz3, 3+xy+x2y+y2z; 389 fwalk(I); 393 int reduction = 1; 394 int printout = 1; 395 fwalk(I,reduction,printout); 390 396 } 391 397 … … 437 443 } 438 444 439 proc pwalk(ideal Go, int n1, int n2, list #)440 "SYNTAX: pwalk(int d, ideal i, int n1, int n2 );441 pwalk(int d, ideal i, int n1, int n2, int vec v, intvec w);445 proc pwalk(ideal Go, int n1, int n2, int reduction, int printout, list #) 446 "SYNTAX: pwalk(int d, ideal i, int n1, int n2, int reduction, int printout); 447 pwalk(int d, ideal i, int n1, int n2, int reduction, int printout, intvec v, intvec w); 442 448 TYPE: ideal 443 449 PURPOSE: compute the standard basis of the ideal, calculated via … … 477 483 ideal G = fetch(xR, Go); 478 484 479 G = system("Mpwalk", G, n1, n2, curr_weight, target_weight,nP);480 485 G = system("Mpwalk",G,n1,n2,curr_weight,target_weight,nP,reduction,printout); 486 481 487 setring xR; 482 //kill Go; 488 //kill Go; //unused 483 489 484 490 keepring basering; … … 492 498 ring r = 32003,(z,y,x), lp; 493 499 ideal I = y3+xyz+y2z+xz3, 3+xy+x2y+y2z; 494 //I = std(I); 495 //ring rr = 32003,(z,y,x),lp; 496 //ideal I = fetch(r,I); 497 pwalk(I,2,2); 500 int reduction = 1; 501 int printout = 2; 502 pwalk(I,2,2,reduction,printout); 498 503 } 499 504 -
Singular/LIB/modwalk.lib
-
Property
mode
changed from
100644
to100755
rcb5589 r5638b9 16 16 17 17 PROCEDURES: 18 modWalk(ideal,int,int[,int,int,int,int]); standard basis conversion of I using modular methods (chinese remainder) 18 19 modWalk(I,#); standard basis conversion of I by Groebner Walk using modular methods 20 modrWalk(I,radius,pertdeg,#); standard basis conversion of I by Random Walk using modular methods 21 modfWalk(I,#); standard basis conversion of I by Fractal Walk using modular methods 22 modfrWalk(I,radius,#); standard basis conversion of I by Random Fractal Walk using modular methods 19 23 "; 20 24 21 LIB "poly.lib";22 LIB "ring.lib";23 LIB "parallel.lib";24 25 LIB "rwalk.lib"; 25 26 LIB "grwalk.lib"; 26 LIB "modstd.lib"; 27 28 29 //////////////////////////////////////////////////////////////////////////////// 30 31 static proc modpWalk(def II, int p, int variant, list #) 32 "USAGE: modpWalk(I,p,#); I ideal, p integer, variant integer 33 ASSUME: If size(#) > 0, then 34 #[1] is an intvec describing the current weight vector 35 #[2] is an intvec describing the target weight vector 36 RETURN: ideal - a standard basis of I mod p, integer - p 37 NOTE: The procedure computes a standard basis of the ideal I modulo p and 38 fetches the result to the basering. 39 EXAMPLE: example modpWalk; shows an example 40 " 41 { 42 option(redSB); 43 int k,nvar@r; 44 def R0 = basering; 45 string ordstr_R0 = ordstr(R0); 46 list rl = ringlist(R0); 47 int sizerl = size(rl); 48 int neg = 1 - attrib(R0,"global"); 49 if(typeof(II) == "ideal") 50 { 51 ideal I = II; 27 LIB "modular.lib"; 28 29 proc modWalk(ideal I, list #) 30 "USAGE: modWalk(I, [, v, w]); I ideal, v intvec, w intvec 31 RETURN: a standard basis of I 32 NOTE: The procedure computes a standard basis of I (over the rational 33 numbers) by using modular methods. 34 SEE ALSO: modular 35 EXAMPLE: example modWalk; shows an example" 36 { 37 /* read optional parameter */ 38 if (size(#) > 0) { 39 if (size(#) == 1) { 40 intvec w = #[1]; 41 } 42 if (size(#) == 2) { 43 intvec v = #[1]; 44 intvec w = #[2]; 45 } 46 if (size(#) > 2 || typeof(#[1]) != "intvec") { 47 ERROR("wrong optional parameter"); 48 } 49 } 50 51 /* save options */ 52 intvec opt = option(get); 53 option(redSB); 54 55 /* set additional parameters */ 56 int reduction = 1; 57 int printout = 0; 58 59 /* call modular() */ 60 if (size(#) > 0) { 61 I = modular("gwalk", list(I,reduction,printout,#)); 62 } 63 else { 64 I = modular("gwalk", list(I,reduction,printout)); 65 } 66 67 /* return the result */ 68 attrib(I, "isSB", 1); 69 option(set, opt); 70 return(I); 71 } 72 example 73 { 74 "EXAMPLE:"; 75 echo = 2; 76 ring R1 = 0, (x,y,z,t), dp; 77 ideal I = 3x3+x2+1, 11y5+y3+2, 5z4+z2+4; 78 I = std(I); 79 ring R2 = 0, (x,y,z,t), lp; 80 ideal I = fetch(R1, I); 81 ideal J = modWalk(I); 82 J; 83 } 84 85 proc modrWalk(ideal I, int radius, int pertdeg, list #) 86 "USAGE: modrWalk(I, radius, pertdeg[, v, w]); 87 I ideal, radius int, pertdeg int, v intvec, w intvec 88 RETURN: a standard basis of I 89 NOTE: The procedure computes a standard basis of I (over the rational 90 numbers) by using modular methods. 91 SEE ALSO: modular 92 EXAMPLE: example modrWalk; shows an example" 93 { 94 /* read optional parameter */ 95 if (size(#) > 0) { 96 if (size(#) == 1) { 97 intvec w = #[1]; 98 } 99 if (size(#) == 2) { 100 intvec v = #[1]; 101 intvec w = #[2]; 102 } 103 if (size(#) > 2 || typeof(#[1]) != "intvec") { 104 ERROR("wrong optional parameter"); 105 } 106 } 107 108 /* save options */ 109 intvec opt = option(get); 110 option(redSB); 111 112 /* set additional parameters */ 113 int reduction = 1; 114 int printout = 0; 115 116 /* call modular() */ 117 if (size(#) > 0) { 118 I = modular("rwalk", list(I,radius,pertdeg,reduction,printout,#)); 119 } 120 else { 121 I = modular("rwalk", list(I,radius,pertdeg,reduction,printout)); 122 } 123 124 /* return the result */ 125 attrib(I, "isSB", 1); 126 option(set, opt); 127 return(I); 128 } 129 example 130 { 131 "EXAMPLE:"; 132 echo = 2; 133 ring R1 = 0, (x,y,z,t), dp; 134 ideal I = 3x3+x2+1, 11y5+y3+2, 5z4+z2+4; 135 I = std(I); 136 ring R2 = 0, (x,y,z,t), lp; 137 ideal I = fetch(R1, I); 52 138 int radius = 2; 53 int pert_deg = 2; 54 } 55 if(typeof(II) == "list" && typeof(II[1]) == "ideal") 56 { 57 ideal I = II[1]; 58 if(size(II) == 2) 59 { 60 int radius = II[2]; 61 int pert_deg = 2; 62 } 63 if(size(II) == 3) 64 { 65 int radius = II[2]; 66 int pert_deg = II[3]; 67 } 68 } 69 rl[1] = p; 70 int h = homog(I); 71 def @r = ring(rl); 72 setring @r; 73 ideal i = fetch(R0,I); 74 string order; 75 if(system("nblocks") <= 2) 76 { 77 if(find(ordstr_R0, "M") + find(ordstr_R0, "lp") + find(ordstr_R0, "rp") <= 0) 78 { 79 order = "simple"; 80 } 81 } 82 83 //------------------------- make i homogeneous ----------------------------- 84 if(!mixedTest() && !h) 85 { 86 if(!((find(ordstr_R0, "M") > 0) || (find(ordstr_R0, "a") > 0) || neg)) 87 { 88 if(!((order == "simple") || (sizerl > 4))) 89 { 90 list rl@r = ringlist(@r); 91 nvar@r = nvars(@r); 92 intvec w; 93 for(k = 1; k <= nvar@r; k++) 94 { 95 w[k] = deg(var(k)); 96 } 97 w[nvar@r + 1] = 1; 98 rl@r[2][nvar@r + 1] = "homvar"; 99 rl@r[3][2][2] = w; 100 def HomR = ring(rl@r); 101 setring HomR; 102 ideal i = imap(@r, i); 103 i = homog(i, homvar); 104 } 105 } 106 } 107 108 //------------------------- compute a standard basis mod p ----------------------------- 109 110 if(variant == 1) 111 { 112 if(size(#)>0) 113 { 114 i = rwalk(i,radius,pert_deg,#); 115 // rwalk(i,radius,pert_deg,#); std(i); 116 } 117 else 118 { 119 i = rwalk(i,radius,pert_deg); 120 } 121 } 122 if(variant == 2) 123 { 124 if(size(#) == 2) 125 { 126 i = gwalk(i,#); 127 } 128 else 129 { 130 i = gwalk(i); 131 } 132 } 133 if(variant == 3) 134 { 135 if(size(#) == 2) 136 { 137 i = frandwalk(i,radius,#); 138 } 139 else 140 { 141 i = frandwalk(i,radius); 142 } 143 } 144 if(variant == 4) 145 { 146 if(size(#) == 2) 147 { 148 i=fwalk(i,#); 149 } 150 else 151 { 152 i=fwalk(i); 153 } 154 } 155 if(variant == 5) 156 { 157 if(size(#) == 2) 158 { 159 i=prwalk(i,radius,pert_deg,pert_deg,#); 160 } 161 else 162 { 163 i=prwalk(i,radius,pert_deg,pert_deg); 164 } 165 } 166 if(variant == 6) 167 { 168 if(size(#) == 2) 169 { 170 i=pwalk(i,pert_deg,pert_deg,#); 171 } 172 else 173 { 174 i=pwalk(i,pert_deg,pert_deg); 175 } 176 } 177 178 if(!mixedTest() && !h) 179 { 180 if(!((find(ordstr_R0, "M") > 0) || (find(ordstr_R0, "a") > 0) || neg)) 181 { 182 if(!((order == "simple") || (sizerl > 4))) 183 { 184 i = subst(i, homvar, 1); 185 i = simplify(i, 34); 186 setring @r; 187 i = imap(HomR, i); 188 i = interred(i); 189 kill HomR; 190 } 191 } 192 } 193 setring R0; 194 return(list(fetch(@r,i),p)); 195 } 196 example 197 { 198 "EXAMPLE:"; echo = 2; 199 option(redSB); 200 201 int p = 181; 202 intvec a = 2,1,3,4; 203 intvec b = 1,9,1,1; 204 ring ra = 0,x(1..4),(a(a),lp); 205 ideal I = std(cyclic(4)); 206 ring rb = 0,x(1..4),(a(b),lp); 207 ideal I = imap(ra,I); 208 modpWalk(I,p,1,a,b); 209 std(I); 210 } 211 212 //////////////////////////////////////////////////////////////////////////////// 213 214 proc modWalk(def II, int variant, list #) 215 "USAGE: modWalk(II); II ideal or list(ideal,int) 216 ASSUME: If variant = 217 @* - 1 the Random Walk algorithm with radius II[2] is applied 218 to II[1] if II = list(ideal, int). It is applied to II with radius 2 219 if II is an ideal. 220 @* - 2, the Groebner Walk algorithm is applied to II[1] or to II, respectively. 221 @* - 3, the Fractal Walk algorithm with random element is applied to II[1] or II, 222 respectively. 223 @* - 4, the Fractal Walk algorithm is applied to II[1] or II, respectively. 224 @* - 5, the Perturbation Walk algorithm with random element is applied to II[1] 225 or II, respectively, with radius II[3] and perturbation degree II[2]. 226 @* - 6, the Perturbation Walk algorithm is applied to II[1] or II, respectively, 227 with perturbation degree II[3]. 228 If size(#) > 0, then # contains either 1, 2 or 4 integers such that 229 @* - #[1] is the number of available processors for the computation, 230 @* - #[2] is an optional parameter for the exactness of the computation, 231 if #[2] = 1, the procedure computes a standard basis for sure, 232 @* - #[3] is the number of primes until the first lifting, 233 @* - #[4] is the constant number of primes between two liftings until 234 the computation stops. 235 RETURN: a standard basis of I if no warning appears. 236 NOTE: The procedure converts a standard basis of I (over the rational 237 numbers) from the ordering \"a(v),lp\", "dp\" or \"Dp\" to the ordering 238 \"(a(w),lp\" or \"a(1,0,...,0),lp\" by using modular methods. 239 By default the procedure computes a standard basis of I for sure, but 240 if the optional parameter #[2] = 0, it computes a standard basis of I 241 with high probability. 242 EXAMPLE: example modWalk; shows an example 243 " 244 { 245 int TT = timer; 246 int RT = rtimer; 247 int i,j,pTest,sizeTest,weighted,n1; 248 bigint N; 249 250 def R0 = basering; 251 list rl = ringlist(R0); 252 if((npars(R0) > 0) || (rl[1] > 0)) 253 { 254 ERROR("Characteristic of basering should be zero, basering should have no parameters."); 255 } 256 257 if(typeof(II) == "ideal") 258 { 259 ideal I = II; 260 kill II; 261 list II; 262 II[1] = I; 263 II[2] = 2; 264 II[3] = 2; 265 } 266 else 267 { 268 if(typeof(II) == "list" && typeof(II[1]) == "ideal") 269 { 270 ideal I = II[1]; 271 if(size(II) == 1) 272 { 273 II[2] = 2; 274 II[3] = 2; 275 } 276 if(size(II) == 2) 277 { 278 II[3] = 2; 279 } 280 281 } 282 else 283 { 284 ERROR("Unexpected type of input."); 285 } 286 } 287 288 //-------------------- Initialize optional parameters ------------------------ 289 n1 = system("--cpus"); 290 if(size(#) == 0) 291 { 292 int exactness = 1; 293 int n2 = 10; 294 int n3 = 10; 295 } 296 else 297 { 298 if(size(#) == 1) 299 { 300 if(typeof(#[1]) == "int") 301 { 302 if(#[1] < n1) 303 { 304 n1 = #[1]; 305 } 306 int exactness = 1; 307 if(n1 >= 10) 308 { 309 int n2 = n1 + 1; 310 int n3 = n1; 311 } 312 else 313 { 314 int n2 = 10; 315 int n3 = 10; 316 } 317 } 318 else 319 { 320 ERROR("Unexpected type of input."); 321 } 322 } 323 if(size(#) == 2) 324 { 325 if(typeof(#[1]) == "int" && typeof(#[2]) == "int") 326 { 327 if(#[1] < n1) 328 { 329 n1 = #[1]; 330 } 331 int exactness = #[2]; 332 if(n1 >= 10) 333 { 334 int n2 = n1 + 1; 335 int n3 = n1; 336 } 337 else 338 { 339 int n2 = 10; 340 int n3 = 10; 341 } 342 } 343 else 344 { 345 if(typeof(#[1]) == "intvec" && typeof(#[2]) == "intvec") 346 { 347 intvec curr_weight = #[1]; 348 intvec target_weight = #[2]; 349 weighted = 1; 350 int n2 = 10; 351 int n3 = 10; 352 int exactness = 1; 353 } 354 else 355 { 356 ERROR("Unexpected type of input."); 357 } 358 } 359 } 360 if(size(#) == 3) 361 { 362 if(typeof(#[1]) == "intvec" && typeof(#[2]) == "intvec" && typeof(#[3]) == "int") 363 { 364 intvec curr_weight = #[1]; 365 intvec target_weight = #[2]; 366 weighted = 1; 367 n1 = #[3]; 368 int n2 = 10; 369 int n3 = 10; 370 int exactness = 1; 371 } 372 else 373 { 374 ERROR("Unexpected type of input."); 375 } 376 } 377 if(size(#) == 4) 378 { 379 if(typeof(#[1]) == "intvec" && typeof(#[2]) == "intvec" && typeof(#[3]) == "int" 380 && typeof(#[4]) == "int") 381 { 382 intvec curr_weight = #[1]; 383 intvec target_weight = #[2]; 384 weighted = 1; 385 if(#[1] < n1) 386 { 387 n1 = #[3]; 388 } 389 int exactness = #[4]; 390 if(n1 >= 10) 391 { 392 int n2 = n1 + 1; 393 int n3 = n1; 394 } 395 else 396 { 397 int n2 = 10; 398 int n3 = 10; 399 } 400 } 401 else 402 { 403 if(typeof(#[1]) == "int" && typeof(#[2]) == "int" && typeof(#[3]) == "int" && typeof(#[4]) == "int") 404 { 405 if(#[1] < n1) 406 { 407 n1 = #[1]; 408 } 409 int exactness = #[2]; 410 if(n1 >= #[3]) 411 { 412 int n2 = n1 + 1; 413 } 414 else 415 { 416 int n2 = #[3]; 417 } 418 if(n1 >= #[4]) 419 { 420 int n3 = n1; 421 } 422 else 423 { 424 int n3 = #[4]; 425 } 426 } 427 else 428 { 429 ERROR("Unexpected type of input."); 430 } 431 } 432 } 433 if(size(#) == 6) 434 { 435 if(typeof(#[1]) == "intvec" && typeof(#[2]) == "intvec" && typeof(#[3]) == "int" && typeof(#[4]) == "int" && typeof(#[5]) == "int" && typeof(#[6]) == "int") 436 { 437 intvec curr_weight = #[1]; 438 intvec target_weight = #[2]; 439 weighted = 1; 440 if(#[3] < n1) 441 { 442 n1 = #[3]; 443 } 444 int exactness = #[4]; 445 if(n1 >= #[5]) 446 { 447 int n2 = n1 + 1; 448 } 449 else 450 { 451 int n2 = #[5]; 452 } 453 if(n1 >= #[6]) 454 { 455 int n3 = n1; 456 } 457 else 458 { 459 int n3 = #[6]; 460 } 461 } 462 else 463 { 464 ERROR("Expected list(intvec,intvec,int,int,int,int) as optional parameter list."); 465 } 466 } 467 if(size(#) == 1 || size(#) == 5 || size(#) > 6) 468 { 469 ERROR("Expected 0,2,3,4 or 5 optional arguments."); 470 } 471 } 472 if(printlevel >= 10) 473 { 474 "n1 = "+string(n1)+", n2 = "+string(n2)+", n3 = "+string(n3)+", exactness = "+string(exactness); 475 } 476 477 //------------------------- Save current options ----------------------------- 478 intvec opt = option(get); 479 //option(redSB); 480 481 //-------------------- Initialize the list of primes ------------------------- 482 int tt = timer; 483 int rt = rtimer; 484 int en = 2134567879; 485 int an = 1000000000; 486 intvec L = primeList(I,n2); 487 if(n2 > 4) 488 { 489 // L[5] = prime(random(an,en)); 490 } 491 if(printlevel >= 10) 492 { 493 "CPU-time for primeList: "+string(timer-tt)+" seconds."; 494 "Real-time for primeList: "+string(rtimer-rt)+" seconds."; 495 } 496 int h = homog(I); 497 list P,T1,T2,LL,Arguments,PP; 498 ideal J,K,H; 499 500 //------------------- parallelized Groebner Walk in positive characteristic -------------------- 501 502 if(weighted) 503 { 504 for(i=1; i<=size(L); i++) 505 { 506 Arguments[i] = list(II,L[i],variant,list(curr_weight,target_weight)); 507 } 508 } 509 else 510 { 511 for(i=1; i<=size(L); i++) 512 { 513 Arguments[i] = list(II,L[i],variant); 514 } 515 } 516 P = parallelWaitAll("modpWalk",Arguments); 517 for(i=1; i<=size(P); i++) 518 { 519 T1[i] = P[i][1]; 520 T2[i] = bigint(P[i][2]); 521 } 522 523 while(1) 524 { 525 LL = deleteUnluckyPrimes(T1,T2,h); 526 T1 = LL[1]; 527 T2 = LL[2]; 528 //------------------- Now all leading ideals are the same -------------------- 529 //------------------- Lift results to basering via farey --------------------- 530 531 tt = timer; rt = rtimer; 532 N = T2[1]; 533 for(i=2; i<=size(T2); i++) 534 { 535 N = N*T2[i]; 536 } 537 H = chinrem(T1,T2); 538 J = parallelFarey(H,N,n1); 539 //J=farey(H,N); 540 if(printlevel >= 10) 541 { 542 "CPU-time for lifting-process is "+string(timer - tt)+" seconds."; 543 "Real-time for lifting-process is "+string(rtimer - rt)+" seconds."; 544 } 545 546 //---------------- Test if we already have a standard basis of I -------------- 547 548 tt = timer; rt = rtimer; 549 pTest = pTestSB(I,J,L,variant); 550 //pTest = primeTestSB(I,J,L,variant); 551 if(printlevel >= 10) 552 { 553 "CPU-time for pTest is "+string(timer - tt)+" seconds."; 554 "Real-time for pTest is "+string(rtimer - rt)+" seconds."; 555 } 556 if(pTest) 557 { 558 if(printlevel >= 10) 559 { 560 "CPU-time for computation without final tests is "+string(timer - TT)+" seconds."; 561 "Real-time for computation without final tests is "+string(rtimer - RT)+" seconds."; 562 } 563 attrib(J,"isSB",1); 564 if(exactness == 0) 565 { 566 option(set, opt); 567 return(J); 568 } 569 else 570 { 571 tt = timer; 572 rt = rtimer; 573 sizeTest = 1 - isIdealIncluded(I,J,n1); 574 if(printlevel >= 10) 575 { 576 "CPU-time for checking if I subset <G> is "+string(timer - tt)+" seconds."; 577 "Real-time for checking if I subset <G> is "+string(rtimer - rt)+" seconds."; 578 } 579 if(sizeTest == 0) 580 { 581 tt = timer; 582 rt = rtimer; 583 K = std(J); 584 if(printlevel >= 10) 585 { 586 "CPU-time for last std-computation is "+string(timer - tt)+" seconds."; 587 "Real-time for last std-computation is "+string(rtimer - rt)+" seconds."; 588 } 589 if(size(reduce(K,J)) == 0) 590 { 591 option(set, opt); 592 return(J); 593 } 594 } 595 } 596 } 597 //-------------- We do not already have a standard basis of I, therefore do the main computation for more primes -------------- 598 599 T1 = H; 600 T2 = N; 601 j = size(L)+1; 602 tt = timer; rt = rtimer; 603 L = primeList(I,n3,L,n1); 604 if(printlevel >= 10) 605 { 606 "CPU-time for primeList: "+string(timer-tt)+" seconds."; 607 "Real-time for primeList: "+string(rtimer-rt)+" seconds."; 608 } 609 Arguments = list(); 610 PP = list(); 611 if(weighted) 612 { 613 for(i=j; i<=size(L); i++) 614 { 615 //Arguments[i-j+1] = list(II,L[i],variant,list(curr_weight,target_weight)); 616 Arguments[size(Arguments)+1] = list(II,L[i],variant,list(curr_weight,target_weight)); 617 } 618 } 619 else 620 { 621 for(i=j; i<=size(L); i++) 622 { 623 //Arguments[i-j+1] = list(II,L[i],variant); 624 Arguments[size(Arguments)+1] = list(II,L[i],variant); 625 } 626 } 627 PP = parallelWaitAll("modpWalk",Arguments); 628 if(printlevel >= 10) 629 { 630 "parallel modpWalk"; 631 } 632 for(i=1; i<=size(PP); i++) 633 { 634 //P[size(P) + 1] = PP[i]; 635 T1[size(T1) + 1] = PP[i][1]; 636 T2[size(T2) + 1] = bigint(PP[i][2]); 637 } 638 } 639 if(printlevel >= 10) 640 { 641 "CPU-time for computation with final tests is "+string(timer - TT)+" seconds."; 642 "Real-time for computation with final tests is "+string(rtimer - RT)+" seconds."; 643 } 644 } 645 646 example 647 { 648 "EXAMPLE:"; 649 echo = 2; 650 ring R=0,(x,y,z),lp; 651 ideal I=-x+y2z-z,xz+1,x2+y2-1; 652 // I is a standard basis in dp 653 ideal J = modWalk(I,1); 654 J; 655 } 656 657 //////////////////////////////////////////////////////////////////////////////// 658 static proc isIdealIncluded(ideal I, ideal J, int n1) 659 "USAGE: isIdealIncluded(I,J,int n1); I ideal, J ideal, n1 integer 660 " 661 { 662 if(n1 > 1) 663 { 664 int k; 665 list args,results; 666 for(k=1; k<=size(I); k++) 667 { 668 args[k] = list(ideal(I[k]),J,1); 669 } 670 results = parallelWaitAll("reduce",args); 671 for(k=1; k<=size(results); k++) 672 { 673 if(results[k] == 0) 674 { 675 return(1); 676 } 677 } 678 return(0); 679 } 680 else 681 { 682 if(reduce(I,J,1) == 0) 683 { 684 return(1); 685 } 686 else 687 { 688 return(0); 689 } 690 } 691 } 692 693 //////////////////////////////////////////////////////////////////////////////// 694 static proc parallelChinrem(list T1, list T2, int n1) 695 "USAGE: parallelChinrem(T1,T2); T1 list of ideals, T2 list of primes, n1 integer" 696 { 697 int i,j,k; 698 699 ideal H,J; 700 701 list arguments_chinrem,results_chinrem; 702 for(i=1; i<=size(T1); i++) 703 { 704 J = ideal(T1[i]); 705 attrib(J,"isSB",1); 706 arguments_chinrem[size(arguments_chinrem)+1] = list(list(J),T2); 707 } 708 results_chinrem = parallelWaitAll("chinrem",arguments_chinrem); 709 for(j=1; j <= size(results_chinrem); j++) 710 { 711 J = results_chinrem[j]; 712 attrib(J,"isSB",1); 713 if(isIdealIncluded(J,H,n1) == 0) 714 { 715 if(H == 0) 716 { 717 H = J; 718 } 719 else 720 { 721 H = H,J; 722 } 723 } 724 } 725 return(H); 726 } 727 728 //////////////////////////////////////////////////////////////////////////////// 729 static proc parallelFarey(ideal H, bigint N, int n1) 730 "USAGE: parallelFarey(H,N,n1); H ideal, N bigint, n1 integer 731 " 732 { 733 int i,j; 734 int ii = 1; 735 list arguments_farey,results_farey; 736 for(i=1; i<=size(H); i++) 737 { 738 for(j=1; j<=size(H[i]); j++) 739 { 740 arguments_farey[size(arguments_farey)+1] = list(H[i][j],N); 741 } 742 } 743 results_farey = parallelWaitAll("farey",arguments_farey); 744 ideal J,K; 745 poly f_farey; 746 while(ii<=size(results_farey)) 747 { 748 for(i=1; i<=size(H); i++) 749 { 750 f_farey = 0; 751 for(j=1; j<=size(H[i]); j++) 752 { 753 f_farey = f_farey + results_farey[ii][1]; 754 ii++; 755 } 756 K = ideal(f_farey); 757 attrib(K,"isSB",1); 758 attrib(J,"isSB",1); 759 if(isIdealIncluded(K,J,n1) == 0) 760 { 761 if(J == 0) 762 { 763 J = K; 764 } 765 else 766 { 767 J = J,K; 768 } 769 } 770 } 771 } 772 return(J); 773 } 774 ////////////////////////////////////////////////////////////////////////////////// 775 static proc primeTestSB(def II, ideal J, list L, int variant, list #) 776 "USAGE: primeTestSB(I,J,L,variant,#); I,J ideals, L intvec of primes, variant int 777 RETURN: 1 (resp. 0) if for a randomly chosen prime p that is not in L 778 J mod p is (resp. is not) a standard basis of I mod p 779 EXAMPLE: example primeTestSB; shows an example 780 " 781 { 782 if(typeof(II) == "ideal") 783 { 784 ideal I = II; 785 int radius = 2; 786 } 787 if(typeof(II) == "list") 788 { 789 ideal I = II[1]; 790 int radius = II[2]; 791 } 792 793 int i,j,k,p; 794 def R = basering; 795 list r = ringlist(R); 796 797 while(!j) 798 { 799 j = 1; 800 p = prime(random(1000000000,2134567879)); 801 for(i = 1; i <= size(L); i++) 802 { 803 if(p == L[i]) 804 { 805 j = 0; 806 break; 807 } 808 } 809 if(j) 810 { 811 for(i = 1; i <= ncols(I); i++) 812 { 813 for(k = 2; k <= size(I[i]); k++) 814 { 815 if((denominator(leadcoef(I[i][k])) mod p) == 0) 816 { 817 j = 0; 818 break; 819 } 820 } 821 if(!j) 822 { 823 break; 824 } 825 } 826 } 827 if(j) 828 { 829 if(!primeTest(I,p)) 830 { 831 j = 0; 832 } 833 } 834 } 835 r[1] = p; 836 def @R = ring(r); 837 setring @R; 838 ideal I = imap(R,I); 839 ideal J = imap(R,J); 840 attrib(J,"isSB",1); 841 842 int t = timer; 843 j = 1; 844 if(isIncluded(I,J) == 0) 845 { 846 j = 0; 847 } 848 if(printlevel >= 11) 849 { 850 "isIncluded(I,J) takes "+string(timer - t)+" seconds"; 851 "j = "+string(j); 852 } 853 t = timer; 854 if(j) 855 { 856 if(size(#) > 0) 857 { 858 ideal K = modpWalk(I,p,variant,#)[1]; 859 } 860 else 861 { 862 ideal K = modpWalk(I,p,variant)[1]; 863 } 864 t = timer; 865 if(isIncluded(J,K) == 0) 866 { 867 j = 0; 868 } 869 if(printlevel >= 11) 870 { 871 "isIncluded(K,J) takes "+string(timer - t)+" seconds"; 872 "j = "+string(j); 873 } 874 } 875 setring R; 876 877 return(j); 878 } 879 example 880 { "EXAMPLE:"; echo = 2; 881 intvec L = 2,3,5; 882 ring r = 0,(x,y,z),lp; 883 ideal I = x+1,x+y+1; 884 ideal J = x+1,y; 885 primeTestSB(I,I,L,1); 886 primeTestSB(I,J,L,1); 887 } 888 889 //////////////////////////////////////////////////////////////////////////////// 890 static proc pTestSB(ideal I, ideal J, list L, int variant, list #) 891 "USAGE: pTestSB(I,J,L,variant,#); I,J ideals, L intvec of primes, variant int 892 RETURN: 1 (resp. 0) if for a randomly chosen prime p that is not in L 893 J mod p is (resp. is not) a standard basis of I mod p 894 EXAMPLE: example pTestSB; shows an example 895 " 896 { 897 int i,j,k,p; 898 def R = basering; 899 list r = ringlist(R); 900 901 while(!j) 902 { 903 j = 1; 904 p = prime(random(1000000000,2134567879)); 905 for(i = 1; i <= size(L); i++) 906 { 907 if(p == L[i]) { j = 0; break; } 908 } 909 if(j) 910 { 911 for(i = 1; i <= ncols(I); i++) 912 { 913 for(k = 2; k <= size(I[i]); k++) 914 { 915 if((denominator(leadcoef(I[i][k])) mod p) == 0) { j = 0; break; } 916 } 917 if(!j){ break; } 918 } 919 } 920 if(j) 921 { 922 if(!primeTest(I,p)) { j = 0; } 923 } 924 } 925 r[1] = p; 926 def @R = ring(r); 927 setring @R; 928 ideal I = imap(R,I); 929 ideal J = imap(R,J); 930 attrib(J,"isSB",1); 931 932 int t = timer; 933 j = 1; 934 if(isIncluded(I,J) == 0) { j = 0; } 935 936 if(printlevel >= 11) 937 { 938 "isIncluded(I,J) takes "+string(timer - t)+" seconds"; 939 "j = "+string(j); 940 } 941 942 t = timer; 943 if(j) 944 { 945 if(size(#) > 0) 946 { 947 ideal K = modpStd(I,p,variant,#[1])[1]; 948 } 949 else 950 { 951 ideal K = groebner(I); 952 } 953 t = timer; 954 if(isIncluded(J,K) == 0) { j = 0; } 955 956 if(printlevel >= 11) 957 { 958 "isIncluded(J,K) takes "+string(timer - t)+" seconds"; 959 "j = "+string(j); 960 } 961 } 962 setring R; 963 return(j); 964 } 965 example 966 { "EXAMPLE:"; echo = 2; 967 intvec L = 2,3,5; 968 ring r = 0,(x,y,z),dp; 969 ideal I = x+1,x+y+1; 970 ideal J = x+1,y; 971 pTestSB(I,I,L,2); 972 pTestSB(I,J,L,2); 973 } 974 //////////////////////////////////////////////////////////////////////////////// 975 static proc mixedTest() 976 "USAGE: mixedTest(); 977 RETURN: 1 if ordering of basering is mixed, 0 else 978 EXAMPLE: example mixedTest(); shows an example 979 " 980 { 981 int i,p,m; 982 for(i = 1; i <= nvars(basering); i++) 983 { 984 if(var(i) > 1) 985 { 986 p++; 987 } 988 else 989 { 990 m++; 991 } 992 } 993 if((p > 0) && (m > 0)) { return(1); } 994 return(0); 995 } 996 example 997 { "EXAMPLE:"; echo = 2; 998 ring R1 = 0,(x,y,z),dp; 999 mixedTest(); 1000 ring R2 = 31,(x(1..4),y(1..3)),(ds(4),lp(3)); 1001 mixedTest(); 1002 ring R3 = 181,x(1..9),(dp(5),lp(4)); 1003 mixedTest(); 1004 } 139 int pertdeg = 3; 140 ideal J = modrWalk(I,radius,pertdeg); 141 J; 142 } 143 144 proc modfWalk(ideal I, list #) 145 "USAGE: modfWalk(I, [, v, w]); I ideal, v intvec, w intvec 146 RETURN: a standard basis of I 147 NOTE: The procedure computes a standard basis of I (over the rational 148 numbers) by using modular methods. 149 SEE ALSO: modular 150 EXAMPLE: example modfWalk; shows an example" 151 { 152 /* read optional parameter */ 153 if (size(#) > 0) { 154 if (size(#) == 1) { 155 intvec w = #[1]; 156 } 157 if (size(#) == 2) { 158 intvec v = #[1]; 159 intvec w = #[2]; 160 } 161 if (size(#) > 2 || typeof(#[1]) != "intvec") { 162 ERROR("wrong optional parameter"); 163 } 164 } 165 166 /* save options */ 167 intvec opt = option(get); 168 option(redSB); 169 170 /* set additional parameters */ 171 int reduction = 1; 172 int printout = 0; 173 174 /* call modular() */ 175 if (size(#) > 0) { 176 I = modular("fwalk", list(I,reduction,printout,#)); 177 } 178 else { 179 I = modular("fwalk", list(I,reduction,printout)); 180 } 181 182 /* return the result */ 183 attrib(I, "isSB", 1); 184 option(set, opt); 185 return(I); 186 } 187 example 188 { 189 "EXAMPLE:"; 190 echo = 2; 191 ring R1 = 0, (x,y,z,t), dp; 192 ideal I = 3x3+x2+1, 11y5+y3+2, 5z4+z2+4; 193 I = std(I); 194 ring R2 = 0, (x,y,z,t), lp; 195 ideal I = fetch(R1, I); 196 ideal J = modfWalk(I); 197 J; 198 } 199 200 proc modfrWalk(ideal I, int radius, list #) 201 "USAGE: modfrWalk(I, radius [, v, w]); I ideal, radius int, v intvec, w intvec 202 RETURN: a standard basis of I 203 NOTE: The procedure computes a standard basis of I (over the rational 204 numbers) by using modular methods. 205 SEE ALSO: modular 206 EXAMPLE: example modfrWalk; shows an example" 207 { 208 /* read optional parameter */ 209 if (size(#) > 0) { 210 if (size(#) == 1) { 211 intvec w = #[1]; 212 } 213 if (size(#) == 2) { 214 intvec v = #[1]; 215 intvec w = #[2]; 216 } 217 if (size(#) > 2 || typeof(#[1]) != "intvec") { 218 ERROR("wrong optional parameter"); 219 } 220 } 221 222 /* save options */ 223 intvec opt = option(get); 224 option(redSB); 225 226 /* set additional parameters */ 227 int reduction = 1; 228 int printout = 0; 229 230 /* call modular() */ 231 if (size(#) > 0) { 232 I = modular("frandwalk", list(I,radius,reduction,printout,#)); 233 } 234 else { 235 I = modular("frandwalk", list(I,radius,reduction,printout)); 236 } 237 238 /* return the result */ 239 attrib(I, "isSB", 1); 240 option(set, opt); 241 return(I); 242 } 243 example 244 { 245 "EXAMPLE:"; 246 echo = 2; 247 ring R1 = 0, (x,y,z,t), dp; 248 ideal I = 3x3+x2+1, 11y5+y3+2, 5z4+z2+4; 249 I = std(I); 250 ring R2 = 0, (x,y,z,t), lp; 251 ideal I = fetch(R1, I); 252 int radius = 2; 253 ideal J = modfrWalk(I,radius); 254 J; 255 } -
Property
mode
changed from
-
Singular/LIB/rwalk.lib
-
Property
mode
changed from
100644
to100755
rcb5589 r5638b9 10 10 rwalk(ideal,int,int[,intvec,intvec]); standard basis of ideal via Random Walk algorithm 11 11 rwalk(ideal,int[,intvec,intvec]); standard basis of ideal via Random Perturbation Walk algorithm 12 fr walk(ideal,int[,intvec,intvec]); standard basis of ideal via Random Fractal Walk algorithm12 frandwalk(ideal,int[,intvec,intvec]); standard basis of ideal via Random Fractal Walk algorithm 13 13 "; 14 14 … … 141 141 * Random Walk * 142 142 ****************/ 143 proc rwalk(ideal Go, int radius, int pert_deg, list #)143 proc rwalk(ideal Go, int radius, int pert_deg, int reduction, int printout, list #) 144 144 "SYNTAX: rwalk(ideal i, int radius); 145 145 if size(#)>0 then rwalk(ideal i, int radius, intvec v, intvec w); 146 intermediate Groebner bases are not reduced if reduction = 0 146 147 TYPE: ideal 147 148 PURPOSE: compute the standard basis of the ideal, calculated via … … 178 179 179 180 ideal G = fetch(xR, Go); 180 G = system("Mrwalk", G, curr_weight, target_weight, radius, pert_deg, basering);181 G = system("Mrwalk", G, curr_weight, target_weight, radius, pert_deg, reduction, printout); 181 182 182 183 setring xR; … … 196 197 int radius = 1; 197 198 int perturb_deg = 2; 198 rwalk(I,radius,perturb_deg); 199 int reduction = 0; 200 int printout = 1; 201 rwalk(I,radius,perturb_deg,reduction,printout); 199 202 } 200 203 … … 202 205 * Perturbation Walk with random element * 203 206 *****************************************/ 204 proc prwalk(ideal Go, int radius, int o_pert_deg, int t_pert_deg, list #)207 proc prwalk(ideal Go, int radius, int o_pert_deg, int t_pert_deg, int reduction, int printout, list #) 205 208 "SYNTAX: rwalk(ideal i, int radius); 206 209 if size(#)>0 then rwalk(ideal i, int radius, intvec v, intvec w); … … 227 230 OSCTW= OrderStringalp_NP("al", #); 228 231 } 232 int nP = OSCTW[1]; 229 233 string ord_str = OSCTW[2]; 230 234 intvec curr_weight = OSCTW[3]; // original weight vector … … 238 242 239 243 ideal G = fetch(xR, Go); 240 G = system("Mprwalk", G, curr_weight, target_weight, radius, o_pert_deg, t_pert_deg, basering); 244 G = system("Mprwalk", G, curr_weight, target_weight, radius, o_pert_deg, t_pert_deg, 245 nP, reduction, printout); 241 246 242 247 setring xR; … … 257 262 int o_perturb_deg = 2; 258 263 int t_perturb_deg = 2; 259 prwalk(I,radius,o_perturb_deg,t_perturb_deg); 264 int reduction = 0; 265 int printout = 2; 266 prwalk(I,radius,o_perturb_deg,t_perturb_deg,reduction,printout); 260 267 } 261 268 … … 263 270 * Fractal Walk with random element * 264 271 ************************************/ 265 proc frandwalk(ideal Go, int radius, list #)266 "SYNTAX: frwalk(ideal i, int radius );267 frwalk(ideal i, int radius, int vec v, intvec w);272 proc frandwalk(ideal Go, int radius, int reduction, int printout, list #) 273 "SYNTAX: frwalk(ideal i, int radius, int reduction, int printout); 274 frwalk(ideal i, int radius, int reduction, int printout, intvec v, intvec w); 268 275 TYPE: ideal 269 276 PURPOSE: compute the standard basis of the ideal, calculated via … … 299 306 ideal G = fetch(xR, Go); 300 307 int pert_deg = 2; 301 G = system("Mfrwalk", G, curr_weight, target_weight, radius); 308 309 G = system("Mfrwalk", G, curr_weight, target_weight, radius, reduction, printout); 302 310 303 311 setring xR; … … 314 322 ring r = 0,(z,y,x), lp; 315 323 ideal I = y3+xyz+y2z+xz3, 3+xy+x2y+y2z; 316 frandwalk(I,2); 317 } 324 int reduction = 0; 325 frandwalk(I,2,0,1); 326 } -
Property
mode
changed from
-
Singular/LIB/swalk.lib
-
Property
mode
changed from
100644
to100755
-
Property
mode
changed from
-
Singular/dyn_modules/Order/nforder_elt.cc
r2675bd r5638b9 20 20 return ((nforder *)r->data)->String(); 21 21 } 22 static void EltWrite(number &a, const coeffs r)22 static void EltWrite(number a, const coeffs r) 23 23 { 24 24 bigintmat * b = (bigintmat*)a; -
Singular/extra.cc
r2675bd r5638b9 65 65 #include <polys/weight.h> 66 66 67 67 #include <coeffs/bigintmat.h> 68 68 #include <kernel/fast_mult.h> 69 69 #include <kernel/digitech.h> … … 3772 3772 } 3773 3773 else 3774 /*==================== LU for bigintmat =================*/ 3775 #ifdef SINGULAR_4_1 3776 if(strcmp(sys_cmd,"LU")==0) 3777 { 3778 if ((h!=NULL) && (h->Typ()==CMATRIX_CMD)) 3779 { 3780 // get the argument: 3781 bigintmat *b=(bigintmat *)h->Data(); 3782 // just for tests: simply transpose 3783 bigintmat *bb=b->transpose(); 3784 // return the result: 3785 res->rtyp=CMATRIX_CMD; 3786 res->data=(char*)bb; 3787 return FALSE; 3788 } 3789 else 3790 { 3791 WerrorS("system(\"LU\",<cmatrix>) expected"); 3792 return TRUE; 3793 } 3794 } 3795 else 3796 #endif 3774 3797 /*==================== Error =================*/ 3775 3798 Werror( "(extended) system(\"%s\",...) %s", sys_cmd, feNotImplemented ); -
Singular/grammar.cc
r2675bd r5638b9 239 239 240 240 /* Line 189 of yacc.c */ 241 #line 24 3"grammar.cc"241 #line 242 "grammar.cc" 242 242 243 243 /* Enabling traces. */ … … 412 412 413 413 /* Line 264 of yacc.c */ 414 #line 41 6"grammar.cc"414 #line 415 "grammar.cc" 415 415 416 416 #ifdef short … … 792 792 static const yytype_uint16 yyrline[] = 793 793 { 794 0, 36 4, 364, 366, 400, 401, 403, 405, 409, 414,795 41 6, 467, 468, 469, 470, 471, 472, 473, 474, 478,796 48 1, 482, 483, 484, 485, 486, 487, 488, 489, 492,797 49 9, 504, 508, 512, 516, 520, 533, 561, 585, 591,798 59 7, 601, 605, 609, 613, 617, 621, 625, 629, 633,799 63 7, 641, 645, 649, 653, 657, 661, 665, 669, 673,800 67 7, 683, 687, 691, 695, 699, 706, 717, 723, 728,801 72 9, 730, 734, 738, 742, 746, 750, 754, 758, 762,802 76 6, 783, 790, 789, 807, 815, 823, 832, 836, 840,803 84 4, 848, 852, 856, 860, 864, 868, 872, 876, 880,804 89 2, 899, 900, 919, 920, 932, 937, 942, 946, 950,805 9 90, 1016, 1037, 1045, 1049, 1050, 1064, 1072, 1081, 1126,806 112 7, 1136, 1137, 1143, 1150, 1152, 1154, 1164, 1163, 1171,807 117 6, 1183, 1191, 1203, 1219, 1238, 1242, 1246, 1251, 1255,808 125 9, 1263, 1267, 1272, 1278, 1284, 1290, 1296, 1302, 1308,809 13 20, 1327, 1331, 1368, 1375, 1383, 1389, 1389, 1392, 1464,810 146 8, 1497, 1510, 1527, 1536, 1541, 1549, 1561, 1580, 1590,811 160 9, 1632, 1638, 1650, 1656794 0, 363, 363, 365, 399, 400, 402, 404, 408, 413, 795 415, 466, 467, 468, 469, 470, 471, 472, 473, 477, 796 480, 481, 482, 483, 484, 485, 486, 487, 488, 491, 797 498, 503, 507, 511, 515, 519, 532, 560, 584, 590, 798 596, 600, 604, 608, 612, 616, 620, 624, 628, 632, 799 636, 640, 644, 648, 652, 656, 660, 664, 668, 672, 800 676, 682, 686, 690, 694, 698, 705, 716, 722, 727, 801 728, 729, 733, 737, 741, 745, 749, 753, 757, 761, 802 765, 782, 789, 788, 806, 814, 822, 831, 835, 839, 803 843, 847, 851, 855, 859, 863, 867, 871, 875, 879, 804 891, 898, 899, 918, 919, 931, 936, 941, 945, 949, 805 985, 1011, 1032, 1040, 1044, 1045, 1059, 1067, 1076, 1121, 806 1122, 1131, 1132, 1138, 1145, 1147, 1149, 1159, 1158, 1166, 807 1171, 1178, 1186, 1198, 1214, 1233, 1237, 1241, 1246, 1250, 808 1254, 1258, 1262, 1267, 1273, 1279, 1285, 1291, 1297, 1303, 809 1315, 1322, 1326, 1363, 1370, 1378, 1384, 1384, 1387, 1459, 810 1463, 1492, 1505, 1522, 1531, 1536, 1544, 1556, 1575, 1585, 811 1604, 1627, 1633, 1645, 1651 812 812 }; 813 813 #endif … … 2427 2427 2428 2428 /* Line 1464 of yacc.c */ 2429 #line 36 7"grammar.y"2429 #line 366 "grammar.y" 2430 2430 { 2431 2431 if (timerv) … … 2463 2463 2464 2464 /* Line 1464 of yacc.c */ 2465 #line 40 2"grammar.y"2465 #line 401 "grammar.y" 2466 2466 {currentVoice->ifsw=0;;} 2467 2467 break; … … 2470 2470 2471 2471 /* Line 1464 of yacc.c */ 2472 #line 40 4"grammar.y"2472 #line 403 "grammar.y" 2473 2473 { (yyvsp[(1) - (2)].lv).CleanUp(); currentVoice->ifsw=0;;} 2474 2474 break; … … 2477 2477 2478 2478 /* Line 1464 of yacc.c */ 2479 #line 40 6"grammar.y"2479 #line 405 "grammar.y" 2480 2480 { 2481 2481 YYACCEPT; … … 2486 2486 2487 2487 /* Line 1464 of yacc.c */ 2488 #line 4 10"grammar.y"2488 #line 409 "grammar.y" 2489 2489 { 2490 2490 currentVoice->ifsw=0; … … 2496 2496 2497 2497 /* Line 1464 of yacc.c */ 2498 #line 41 5"grammar.y"2498 #line 414 "grammar.y" 2499 2499 {currentVoice->ifsw=0;;} 2500 2500 break; … … 2503 2503 2504 2504 /* Line 1464 of yacc.c */ 2505 #line 41 7"grammar.y"2505 #line 416 "grammar.y" 2506 2506 { 2507 2507 #ifdef SIQ … … 2557 2557 2558 2558 /* Line 1464 of yacc.c */ 2559 #line 47 5"grammar.y"2559 #line 474 "grammar.y" 2560 2560 {if (currentVoice!=NULL) currentVoice->ifsw=0;;} 2561 2561 break; … … 2564 2564 2565 2565 /* Line 1464 of yacc.c */ 2566 #line 47 8"grammar.y"2566 #line 477 "grammar.y" 2567 2567 { omFree((ADDRESS)(yyvsp[(2) - (2)].name)); ;} 2568 2568 break; … … 2571 2571 2572 2572 /* Line 1464 of yacc.c */ 2573 #line 49 3"grammar.y"2573 #line 492 "grammar.y" 2574 2574 { 2575 2575 if(iiAssign(&(yyvsp[(1) - (2)].lv),&(yyvsp[(2) - (2)].lv))) YYERROR; … … 2580 2580 2581 2581 /* Line 1464 of yacc.c */ 2582 #line 500"grammar.y"2582 #line 499 "grammar.y" 2583 2583 { 2584 2584 if (currRing==NULL) MYYERROR("no ring active"); … … 2590 2590 2591 2591 /* Line 1464 of yacc.c */ 2592 #line 50 5"grammar.y"2592 #line 504 "grammar.y" 2593 2593 { 2594 2594 syMake(&(yyval.lv),(yyvsp[(1) - (1)].name)); … … 2599 2599 2600 2600 /* Line 1464 of yacc.c */ 2601 #line 50 9"grammar.y"2601 #line 508 "grammar.y" 2602 2602 { 2603 2603 if(iiExprArith2(&(yyval.lv), &(yyvsp[(1) - (3)].lv), COLONCOLON, &(yyvsp[(3) - (3)].lv))) YYERROR; … … 2608 2608 2609 2609 /* Line 1464 of yacc.c */ 2610 #line 51 3"grammar.y"2610 #line 512 "grammar.y" 2611 2611 { 2612 2612 if(iiExprArith2(&(yyval.lv), &(yyvsp[(1) - (3)].lv), '.', &(yyvsp[(3) - (3)].lv))) YYERROR; … … 2617 2617 2618 2618 /* Line 1464 of yacc.c */ 2619 #line 51 7"grammar.y"2619 #line 516 "grammar.y" 2620 2620 { 2621 2621 if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'(')) YYERROR; … … 2626 2626 2627 2627 /* Line 1464 of yacc.c */ 2628 #line 52 1"grammar.y"2628 #line 520 "grammar.y" 2629 2629 { 2630 2630 if ((yyvsp[(1) - (4)].lv).rtyp==UNKNOWN) … … 2644 2644 2645 2645 /* Line 1464 of yacc.c */ 2646 #line 53 4"grammar.y"2646 #line 533 "grammar.y" 2647 2647 { 2648 2648 if (currRingHdl==NULL) MYYERROR("no ring active"); … … 2677 2677 2678 2678 /* Line 1464 of yacc.c */ 2679 #line 56 2"grammar.y"2679 #line 561 "grammar.y" 2680 2680 { 2681 2681 memset(&(yyval.lv),0,sizeof((yyval.lv))); … … 2706 2706 2707 2707 /* Line 1464 of yacc.c */ 2708 #line 58 6"grammar.y"2708 #line 585 "grammar.y" 2709 2709 { 2710 2710 memset(&(yyval.lv),0,sizeof((yyval.lv))); … … 2717 2717 2718 2718 /* Line 1464 of yacc.c */ 2719 #line 59 2"grammar.y"2719 #line 591 "grammar.y" 2720 2720 { 2721 2721 memset(&(yyval.lv),0,sizeof((yyval.lv))); … … 2728 2728 2729 2729 /* Line 1464 of yacc.c */ 2730 #line 59 8"grammar.y"2730 #line 597 "grammar.y" 2731 2731 { 2732 2732 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2737 2737 2738 2738 /* Line 1464 of yacc.c */ 2739 #line 60 2"grammar.y"2739 #line 601 "grammar.y" 2740 2740 { 2741 2741 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2746 2746 2747 2747 /* Line 1464 of yacc.c */ 2748 #line 60 6"grammar.y"2748 #line 605 "grammar.y" 2749 2749 { 2750 2750 if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2755 2755 2756 2756 /* Line 1464 of yacc.c */ 2757 #line 6 10"grammar.y"2757 #line 609 "grammar.y" 2758 2758 { 2759 2759 if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR; … … 2764 2764 2765 2765 /* Line 1464 of yacc.c */ 2766 #line 61 4"grammar.y"2766 #line 613 "grammar.y" 2767 2767 { 2768 2768 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2773 2773 2774 2774 /* Line 1464 of yacc.c */ 2775 #line 61 8"grammar.y"2775 #line 617 "grammar.y" 2776 2776 { 2777 2777 if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2782 2782 2783 2783 /* Line 1464 of yacc.c */ 2784 #line 62 2"grammar.y"2784 #line 621 "grammar.y" 2785 2785 { 2786 2786 if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR; … … 2791 2791 2792 2792 /* Line 1464 of yacc.c */ 2793 #line 62 6"grammar.y"2793 #line 625 "grammar.y" 2794 2794 { 2795 2795 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2800 2800 2801 2801 /* Line 1464 of yacc.c */ 2802 #line 6 30"grammar.y"2802 #line 629 "grammar.y" 2803 2803 { 2804 2804 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2809 2809 2810 2810 /* Line 1464 of yacc.c */ 2811 #line 63 4"grammar.y"2811 #line 633 "grammar.y" 2812 2812 { 2813 2813 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2818 2818 2819 2819 /* Line 1464 of yacc.c */ 2820 #line 63 8"grammar.y"2820 #line 637 "grammar.y" 2821 2821 { 2822 2822 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2827 2827 2828 2828 /* Line 1464 of yacc.c */ 2829 #line 64 2"grammar.y"2829 #line 641 "grammar.y" 2830 2830 { 2831 2831 if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR; … … 2836 2836 2837 2837 /* Line 1464 of yacc.c */ 2838 #line 64 6"grammar.y"2838 #line 645 "grammar.y" 2839 2839 { 2840 2840 if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR; … … 2845 2845 2846 2846 /* Line 1464 of yacc.c */ 2847 #line 6 50"grammar.y"2847 #line 649 "grammar.y" 2848 2848 { 2849 2849 if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR; … … 2854 2854 2855 2855 /* Line 1464 of yacc.c */ 2856 #line 65 4"grammar.y"2856 #line 653 "grammar.y" 2857 2857 { 2858 2858 if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR; … … 2863 2863 2864 2864 /* Line 1464 of yacc.c */ 2865 #line 65 8"grammar.y"2865 #line 657 "grammar.y" 2866 2866 { 2867 2867 if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR; … … 2872 2872 2873 2873 /* Line 1464 of yacc.c */ 2874 #line 66 2"grammar.y"2874 #line 661 "grammar.y" 2875 2875 { 2876 2876 if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR; … … 2881 2881 2882 2882 /* Line 1464 of yacc.c */ 2883 #line 66 6"grammar.y"2883 #line 665 "grammar.y" 2884 2884 { 2885 2885 if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR; … … 2890 2890 2891 2891 /* Line 1464 of yacc.c */ 2892 #line 6 70"grammar.y"2892 #line 669 "grammar.y" 2893 2893 { 2894 2894 if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR; … … 2899 2899 2900 2900 /* Line 1464 of yacc.c */ 2901 #line 67 4"grammar.y"2901 #line 673 "grammar.y" 2902 2902 { 2903 2903 if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR; … … 2908 2908 2909 2909 /* Line 1464 of yacc.c */ 2910 #line 67 8"grammar.y"2910 #line 677 "grammar.y" 2911 2911 { 2912 2912 int b=iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i)); // handle branchTo … … 2919 2919 2920 2920 /* Line 1464 of yacc.c */ 2921 #line 68 4"grammar.y"2921 #line 683 "grammar.y" 2922 2922 { 2923 2923 if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR; … … 2928 2928 2929 2929 /* Line 1464 of yacc.c */ 2930 #line 68 8"grammar.y"2930 #line 687 "grammar.y" 2931 2931 { 2932 2932 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2937 2937 2938 2938 /* Line 1464 of yacc.c */ 2939 #line 69 2"grammar.y"2939 #line 691 "grammar.y" 2940 2940 { 2941 2941 if(iiExprArith3(&(yyval.lv),RING_CMD,&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR; … … 2946 2946 2947 2947 /* Line 1464 of yacc.c */ 2948 #line 69 6"grammar.y"2948 #line 695 "grammar.y" 2949 2949 { 2950 2950 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),RING_CMD)) YYERROR; … … 2955 2955 2956 2956 /* Line 1464 of yacc.c */ 2957 #line 700"grammar.y"2957 #line 699 "grammar.y" 2958 2958 { 2959 2959 if (iiARROW(&(yyval.lv),(yyvsp[(1) - (3)].name),(yyvsp[(3) - (3)].name))) YYERROR; … … 2964 2964 2965 2965 /* Line 1464 of yacc.c */ 2966 #line 70 7"grammar.y"2966 #line 706 "grammar.y" 2967 2967 { 2968 2968 leftv v = &(yyvsp[(1) - (3)].lv); … … 2980 2980 2981 2981 /* Line 1464 of yacc.c */ 2982 #line 71 8"grammar.y"2982 #line 717 "grammar.y" 2983 2983 { 2984 2984 (yyval.lv) = (yyvsp[(1) - (1)].lv); … … 2989 2989 2990 2990 /* Line 1464 of yacc.c */ 2991 #line 72 4"grammar.y"2991 #line 723 "grammar.y" 2992 2992 { 2993 2993 /*if ($1.typ == eunknown) YYERROR;*/ … … 2999 2999 3000 3000 /* Line 1464 of yacc.c */ 3001 #line 727 "grammar.y" 3002 { (yyval.lv) = (yyvsp[(1) - (1)].lv); ;} 3003 break; 3004 3005 case 70: 3006 3007 /* Line 1464 of yacc.c */ 3001 3008 #line 728 "grammar.y" 3002 { (yyval.lv) = (yyvsp[(1) - (1)].lv); ;}3003 break;3004 3005 case 70:3006 3007 /* Line 1464 of yacc.c */3008 #line 729 "grammar.y"3009 3009 { (yyval.lv) = (yyvsp[(2) - (3)].lv); ;} 3010 3010 break; … … 3013 3013 3014 3014 /* Line 1464 of yacc.c */ 3015 #line 73 1"grammar.y"3015 #line 730 "grammar.y" 3016 3016 { 3017 3017 if(iiExprArith3(&(yyval.lv),'[',&(yyvsp[(1) - (6)].lv),&(yyvsp[(3) - (6)].lv),&(yyvsp[(5) - (6)].lv))) YYERROR; … … 3022 3022 3023 3023 /* Line 1464 of yacc.c */ 3024 #line 73 5"grammar.y"3024 #line 734 "grammar.y" 3025 3025 { 3026 3026 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (4)].lv),'[',&(yyvsp[(3) - (4)].lv))) YYERROR; … … 3031 3031 3032 3032 /* Line 1464 of yacc.c */ 3033 #line 73 9"grammar.y"3033 #line 738 "grammar.y" 3034 3034 { 3035 3035 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR; … … 3040 3040 3041 3041 /* Line 1464 of yacc.c */ 3042 #line 74 3"grammar.y"3042 #line 742 "grammar.y" 3043 3043 { 3044 3044 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR; … … 3049 3049 3050 3050 /* Line 1464 of yacc.c */ 3051 #line 74 7"grammar.y"3051 #line 746 "grammar.y" 3052 3052 { 3053 3053 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR; … … 3058 3058 3059 3059 /* Line 1464 of yacc.c */ 3060 #line 75 1"grammar.y"3060 #line 750 "grammar.y" 3061 3061 { 3062 3062 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR; … … 3067 3067 3068 3068 /* Line 1464 of yacc.c */ 3069 #line 75 5"grammar.y"3069 #line 754 "grammar.y" 3070 3070 { 3071 3071 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR; … … 3076 3076 3077 3077 /* Line 1464 of yacc.c */ 3078 #line 75 9"grammar.y"3078 #line 758 "grammar.y" 3079 3079 { 3080 3080 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), 0, &(yyvsp[(5) - (6)].lv))) YYERROR; … … 3085 3085 3086 3086 /* Line 1464 of yacc.c */ 3087 #line 76 3"grammar.y"3087 #line 762 "grammar.y" 3088 3088 { 3089 3089 (yyval.lv)=(yyvsp[(2) - (3)].lv); … … 3094 3094 3095 3095 /* Line 1464 of yacc.c */ 3096 #line 76 7"grammar.y"3096 #line 766 "grammar.y" 3097 3097 { 3098 3098 #ifdef SIQ … … 3116 3116 3117 3117 /* Line 1464 of yacc.c */ 3118 #line 78 4"grammar.y"3118 #line 783 "grammar.y" 3119 3119 { 3120 3120 iiTestAssume(&(yyvsp[(2) - (5)].lv),&(yyvsp[(4) - (5)].lv)); … … 3127 3127 3128 3128 /* Line 1464 of yacc.c */ 3129 #line 7 90"grammar.y"3129 #line 789 "grammar.y" 3130 3130 { 3131 3131 #ifdef SIQ … … 3138 3138 3139 3139 /* Line 1464 of yacc.c */ 3140 #line 79 6"grammar.y"3140 #line 795 "grammar.y" 3141 3141 { 3142 3142 #ifdef SIQ … … 3153 3153 3154 3154 /* Line 1464 of yacc.c */ 3155 #line 80 8"grammar.y"3155 #line 807 "grammar.y" 3156 3156 { 3157 3157 #ifdef SIQ … … 3164 3164 3165 3165 /* Line 1464 of yacc.c */ 3166 #line 81 6"grammar.y"3166 #line 815 "grammar.y" 3167 3167 { 3168 3168 #ifdef SIQ … … 3175 3175 3176 3176 /* Line 1464 of yacc.c */ 3177 #line 82 4"grammar.y"3177 #line 823 "grammar.y" 3178 3178 { 3179 3179 #ifdef SIQ … … 3186 3186 3187 3187 /* Line 1464 of yacc.c */ 3188 #line 83 3"grammar.y"3188 #line 832 "grammar.y" 3189 3189 { 3190 3190 if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (2)].lv),PLUSPLUS)) YYERROR; … … 3195 3195 3196 3196 /* Line 1464 of yacc.c */ 3197 #line 83 7"grammar.y"3197 #line 836 "grammar.y" 3198 3198 { 3199 3199 if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (2)].lv),MINUSMINUS)) YYERROR; … … 3204 3204 3205 3205 /* Line 1464 of yacc.c */ 3206 #line 84 1"grammar.y"3206 #line 840 "grammar.y" 3207 3207 { 3208 3208 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'+',&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3213 3213 3214 3214 /* Line 1464 of yacc.c */ 3215 #line 84 5"grammar.y"3215 #line 844 "grammar.y" 3216 3216 { 3217 3217 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'-',&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3222 3222 3223 3223 /* Line 1464 of yacc.c */ 3224 #line 84 9"grammar.y"3224 #line 848 "grammar.y" 3225 3225 { 3226 3226 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3231 3231 3232 3232 /* Line 1464 of yacc.c */ 3233 #line 85 3"grammar.y"3233 #line 852 "grammar.y" 3234 3234 { 3235 3235 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'^',&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3240 3240 3241 3241 /* Line 1464 of yacc.c */ 3242 #line 85 7"grammar.y"3242 #line 856 "grammar.y" 3243 3243 { 3244 3244 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3249 3249 3250 3250 /* Line 1464 of yacc.c */ 3251 #line 86 1"grammar.y"3251 #line 860 "grammar.y" 3252 3252 { 3253 3253 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3258 3258 3259 3259 /* Line 1464 of yacc.c */ 3260 #line 86 5"grammar.y"3260 #line 864 "grammar.y" 3261 3261 { 3262 3262 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),NOTEQUAL,&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3267 3267 3268 3268 /* Line 1464 of yacc.c */ 3269 #line 86 9"grammar.y"3269 #line 868 "grammar.y" 3270 3270 { 3271 3271 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),EQUAL_EQUAL,&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3276 3276 3277 3277 /* Line 1464 of yacc.c */ 3278 #line 87 3"grammar.y"3278 #line 872 "grammar.y" 3279 3279 { 3280 3280 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),DOTDOT,&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3285 3285 3286 3286 /* Line 1464 of yacc.c */ 3287 #line 87 7"grammar.y"3287 #line 876 "grammar.y" 3288 3288 { 3289 3289 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),':',&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3294 3294 3295 3295 /* Line 1464 of yacc.c */ 3296 #line 88 1"grammar.y"3296 #line 880 "grammar.y" 3297 3297 { 3298 3298 if (siq>0) … … 3311 3311 3312 3312 /* Line 1464 of yacc.c */ 3313 #line 89 3"grammar.y"3313 #line 892 "grammar.y" 3314 3314 { 3315 3315 if(iiExprArith1(&(yyval.lv),&(yyvsp[(2) - (2)].lv),'-')) YYERROR; … … 3320 3320 3321 3321 /* Line 1464 of yacc.c */ 3322 #line 89 9"grammar.y"3322 #line 898 "grammar.y" 3323 3323 { (yyval.lv) = (yyvsp[(1) - (2)].lv); ;} 3324 3324 break; … … 3327 3327 3328 3328 /* Line 1464 of yacc.c */ 3329 #line 90 1"grammar.y"3329 #line 900 "grammar.y" 3330 3330 { 3331 3331 if ((yyvsp[(1) - (2)].lv).rtyp==0) … … 3347 3347 3348 3348 /* Line 1464 of yacc.c */ 3349 #line 92 1"grammar.y"3349 #line 920 "grammar.y" 3350 3350 { 3351 3351 if ((yyvsp[(2) - (3)].lv).Typ()!=STRING_CMD) … … 3361 3361 3362 3362 /* Line 1464 of yacc.c */ 3363 #line 93 3"grammar.y"3363 #line 932 "grammar.y" 3364 3364 { 3365 3365 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot))) … … 3371 3371 3372 3372 /* Line 1464 of yacc.c */ 3373 #line 93 8"grammar.y"3373 #line 937 "grammar.y" 3374 3374 { 3375 3375 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot))) … … 3381 3381 3382 3382 /* Line 1464 of yacc.c */ 3383 #line 94 3"grammar.y"3383 #line 942 "grammar.y" 3384 3384 { 3385 3385 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR; … … 3390 3390 3391 3391 /* Line 1464 of yacc.c */ 3392 #line 94 7"grammar.y"3392 #line 946 "grammar.y" 3393 3393 { 3394 3394 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR; … … 3399 3399 3400 3400 /* Line 1464 of yacc.c */ 3401 #line 95 1"grammar.y"3401 #line 950 "grammar.y" 3402 3402 { 3403 3403 int r; TESTSETINT((yyvsp[(4) - (8)].lv),r); 3404 3404 int c; TESTSETINT((yyvsp[(7) - (8)].lv),c); 3405 if (r < 1)3406 MYYERROR("rows must be greater than 0");3407 if (c < 0)3408 MYYERROR("cols must be greater than -1");3409 3405 leftv v; 3410 3406 idhdl h; … … 3444 3440 3445 3441 /* Line 1464 of yacc.c */ 3446 #line 9 91"grammar.y"3442 #line 986 "grammar.y" 3447 3443 { 3448 3444 if ((yyvsp[(1) - (2)].i) == MATRIX_CMD) … … 3475 3471 3476 3472 /* Line 1464 of yacc.c */ 3477 #line 101 7"grammar.y"3473 #line 1012 "grammar.y" 3478 3474 { 3479 3475 int t=(yyvsp[(1) - (3)].lv).Typ(); … … 3501 3497 3502 3498 /* Line 1464 of yacc.c */ 3503 #line 103 8"grammar.y"3499 #line 1033 "grammar.y" 3504 3500 { 3505 3501 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot))) … … 3511 3507 3512 3508 /* Line 1464 of yacc.c */ 3513 #line 10 51"grammar.y"3509 #line 1046 "grammar.y" 3514 3510 { 3515 3511 leftv v = &(yyvsp[(2) - (5)].lv); … … 3527 3523 3528 3524 /* Line 1464 of yacc.c */ 3529 #line 106 5"grammar.y"3525 #line 1060 "grammar.y" 3530 3526 { 3531 3527 // let rInit take care of any errors … … 3537 3533 3538 3534 /* Line 1464 of yacc.c */ 3539 #line 10 73"grammar.y"3535 #line 1068 "grammar.y" 3540 3536 { 3541 3537 memset(&(yyval.lv),0,sizeof((yyval.lv))); … … 3551 3547 3552 3548 /* Line 1464 of yacc.c */ 3553 #line 10 82"grammar.y"3549 #line 1077 "grammar.y" 3554 3550 { 3555 3551 memset(&(yyval.lv),0,sizeof((yyval.lv))); … … 3598 3594 3599 3595 /* Line 1464 of yacc.c */ 3600 #line 112 8"grammar.y"3596 #line 1123 "grammar.y" 3601 3597 { 3602 3598 (yyval.lv) = (yyvsp[(1) - (3)].lv); … … 3609 3605 3610 3606 /* Line 1464 of yacc.c */ 3611 #line 113 8"grammar.y"3607 #line 1133 "grammar.y" 3612 3608 { 3613 3609 (yyval.lv) = (yyvsp[(2) - (3)].lv); … … 3618 3614 3619 3615 /* Line 1464 of yacc.c */ 3620 #line 11 44"grammar.y"3616 #line 1139 "grammar.y" 3621 3617 { 3622 3618 expected_parms = TRUE; … … 3627 3623 3628 3624 /* Line 1464 of yacc.c */ 3629 #line 11 51"grammar.y"3625 #line 1146 "grammar.y" 3630 3626 { (yyval.i) = (yyvsp[(1) - (1)].i); ;} 3631 3627 break; … … 3634 3630 3635 3631 /* Line 1464 of yacc.c */ 3636 #line 11 53"grammar.y"3632 #line 1148 "grammar.y" 3637 3633 { (yyval.i) = (yyvsp[(1) - (1)].i); ;} 3638 3634 break; … … 3641 3637 3642 3638 /* Line 1464 of yacc.c */ 3643 #line 115 5"grammar.y"3639 #line 1150 "grammar.y" 3644 3640 { (yyval.i) = (yyvsp[(1) - (1)].i); ;} 3645 3641 break; … … 3648 3644 3649 3645 /* Line 1464 of yacc.c */ 3650 #line 11 64"grammar.y"3646 #line 1159 "grammar.y" 3651 3647 { if ((yyvsp[(1) - (2)].i) != '<') YYERROR; 3652 3648 if((feFilePending=feFopen((yyvsp[(2) - (2)].name),"r",NULL,TRUE))==NULL) YYERROR; ;} … … 3656 3652 3657 3653 /* Line 1464 of yacc.c */ 3654 #line 1162 "grammar.y" 3655 { newFile((yyvsp[(2) - (4)].name),feFilePending); ;} 3656 break; 3657 3658 case 129: 3659 3660 /* Line 1464 of yacc.c */ 3658 3661 #line 1167 "grammar.y" 3659 { newFile((yyvsp[(2) - (4)].name),feFilePending); ;}3660 break;3661 3662 case 129:3663 3664 /* Line 1464 of yacc.c */3665 #line 1172 "grammar.y"3666 3662 { 3667 3663 feHelp((yyvsp[(2) - (3)].name)); … … 3673 3669 3674 3670 /* Line 1464 of yacc.c */ 3675 #line 117 7"grammar.y"3671 #line 1172 "grammar.y" 3676 3672 { 3677 3673 feHelp(NULL); … … 3682 3678 3683 3679 /* Line 1464 of yacc.c */ 3684 #line 11 84"grammar.y"3680 #line 1179 "grammar.y" 3685 3681 { 3686 3682 singular_example((yyvsp[(2) - (3)].name)); … … 3692 3688 3693 3689 /* Line 1464 of yacc.c */ 3694 #line 11 92"grammar.y"3690 #line 1187 "grammar.y" 3695 3691 { 3696 3692 if (basePack!=(yyvsp[(2) - (2)].lv).req_packhdl) … … 3706 3702 3707 3703 /* Line 1464 of yacc.c */ 3708 #line 1 204"grammar.y"3704 #line 1199 "grammar.y" 3709 3705 { 3710 3706 leftv v=&(yyvsp[(2) - (2)].lv); … … 3727 3723 3728 3724 /* Line 1464 of yacc.c */ 3729 #line 12 20"grammar.y"3725 #line 1215 "grammar.y" 3730 3726 { 3731 3727 leftv v=&(yyvsp[(3) - (3)].lv); … … 3748 3744 3749 3745 /* Line 1464 of yacc.c */ 3750 #line 123 9"grammar.y"3746 #line 1234 "grammar.y" 3751 3747 { 3752 3748 list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE); … … 3757 3753 3758 3754 /* Line 1464 of yacc.c */ 3759 #line 12 43"grammar.y"3755 #line 1238 "grammar.y" 3760 3756 { 3761 3757 list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE); … … 3766 3762 3767 3763 /* Line 1464 of yacc.c */ 3768 #line 124 7"grammar.y"3764 #line 1242 "grammar.y" 3769 3765 { 3770 3766 if ((yyvsp[(3) - (4)].i)==QRING_CMD) (yyvsp[(3) - (4)].i)=RING_CMD; … … 3776 3772 3777 3773 /* Line 1464 of yacc.c */ 3778 #line 12 52"grammar.y"3774 #line 1247 "grammar.y" 3779 3775 { 3780 3776 list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE); … … 3785 3781 3786 3782 /* Line 1464 of yacc.c */ 3787 #line 125 6"grammar.y"3783 #line 1251 "grammar.y" 3788 3784 { 3789 3785 list_cmd(RING_CMD,NULL,"// ",TRUE); … … 3794 3790 3795 3791 /* Line 1464 of yacc.c */ 3796 #line 12 60"grammar.y"3792 #line 1255 "grammar.y" 3797 3793 { 3798 3794 list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE); … … 3803 3799 3804 3800 /* Line 1464 of yacc.c */ 3805 #line 12 64"grammar.y"3801 #line 1259 "grammar.y" 3806 3802 { 3807 3803 list_cmd(PROC_CMD,NULL,"// ",TRUE); … … 3812 3808 3813 3809 /* Line 1464 of yacc.c */ 3814 #line 126 8"grammar.y"3810 #line 1263 "grammar.y" 3815 3811 { 3816 3812 list_cmd(0,(yyvsp[(3) - (4)].lv).Fullname(),"// ",TRUE); … … 3822 3818 3823 3819 /* Line 1464 of yacc.c */ 3824 #line 12 73"grammar.y"3820 #line 1268 "grammar.y" 3825 3821 { 3826 3822 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3833 3829 3834 3830 /* Line 1464 of yacc.c */ 3835 #line 127 9"grammar.y"3831 #line 1274 "grammar.y" 3836 3832 { 3837 3833 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3844 3840 3845 3841 /* Line 1464 of yacc.c */ 3846 #line 128 5"grammar.y"3842 #line 1280 "grammar.y" 3847 3843 { 3848 3844 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3855 3851 3856 3852 /* Line 1464 of yacc.c */ 3857 #line 12 91"grammar.y"3853 #line 1286 "grammar.y" 3858 3854 { 3859 3855 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3866 3862 3867 3863 /* Line 1464 of yacc.c */ 3868 #line 129 7"grammar.y"3864 #line 1292 "grammar.y" 3869 3865 { 3870 3866 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3877 3873 3878 3874 /* Line 1464 of yacc.c */ 3879 #line 1 303"grammar.y"3875 #line 1298 "grammar.y" 3880 3876 { 3881 3877 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3888 3884 3889 3885 /* Line 1464 of yacc.c */ 3890 #line 130 9"grammar.y"3886 #line 1304 "grammar.y" 3891 3887 { 3892 3888 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3899 3895 3900 3896 /* Line 1464 of yacc.c */ 3901 #line 13 21"grammar.y"3897 #line 1316 "grammar.y" 3902 3898 { 3903 3899 list_cmd(-1,NULL,"// ",TRUE); … … 3908 3904 3909 3905 /* Line 1464 of yacc.c */ 3910 #line 132 7"grammar.y"3906 #line 1322 "grammar.y" 3911 3907 { yyInRingConstruction = TRUE; ;} 3912 3908 break; … … 3915 3911 3916 3912 /* Line 1464 of yacc.c */ 3917 #line 133 6"grammar.y"3913 #line 1331 "grammar.y" 3918 3914 { 3919 3915 const char *ring_name = (yyvsp[(2) - (8)].lv).name; … … 3953 3949 3954 3950 /* Line 1464 of yacc.c */ 3955 #line 136 9"grammar.y"3951 #line 1364 "grammar.y" 3956 3952 { 3957 3953 const char *ring_name = (yyvsp[(2) - (2)].lv).name; … … 3965 3961 3966 3962 /* Line 1464 of yacc.c */ 3967 #line 137 6"grammar.y"3963 #line 1371 "grammar.y" 3968 3964 { 3969 3965 yyInRingConstruction = FALSE; … … 3975 3971 3976 3972 /* Line 1464 of yacc.c */ 3977 #line 13 84"grammar.y"3973 #line 1379 "grammar.y" 3978 3974 { 3979 3975 if (((yyvsp[(1) - (2)].i)!=LIB_CMD)||(jjLOAD((yyvsp[(2) - (2)].name),TRUE))) YYERROR; … … 3984 3980 3985 3981 /* Line 1464 of yacc.c */ 3986 #line 13 93"grammar.y"3982 #line 1388 "grammar.y" 3987 3983 { 3988 3984 if (((yyvsp[(1) - (2)].i)==KEEPRING_CMD) && (myynest==0)) … … 4058 4054 4059 4055 /* Line 1464 of yacc.c */ 4060 #line 146 5"grammar.y"4056 #line 1460 "grammar.y" 4061 4057 { 4062 4058 type_cmd(&((yyvsp[(2) - (2)].lv))); … … 4067 4063 4068 4064 /* Line 1464 of yacc.c */ 4069 #line 146 9"grammar.y"4065 #line 1464 "grammar.y" 4070 4066 { 4071 4067 //Print("typ is %d, rtyp:%d\n",$1.Typ(),$1.rtyp); … … 4095 4091 4096 4092 /* Line 1464 of yacc.c */ 4097 #line 149 8"grammar.y"4093 #line 1493 "grammar.y" 4098 4094 { 4099 4095 int i; TESTSETINT((yyvsp[(3) - (5)].lv),i); … … 4113 4109 4114 4110 /* Line 1464 of yacc.c */ 4115 #line 15 11"grammar.y"4111 #line 1506 "grammar.y" 4116 4112 { 4117 4113 if (currentVoice->ifsw==1) … … 4135 4131 4136 4132 /* Line 1464 of yacc.c */ 4137 #line 152 8"grammar.y"4133 #line 1523 "grammar.y" 4138 4134 { 4139 4135 int i; TESTSETINT((yyvsp[(3) - (5)].lv),i); … … 4149 4145 4150 4146 /* Line 1464 of yacc.c */ 4151 #line 153 7"grammar.y"4147 #line 1532 "grammar.y" 4152 4148 { 4153 4149 if (exitBuffer(BT_break)) YYERROR; … … 4159 4155 4160 4156 /* Line 1464 of yacc.c */ 4161 #line 15 42"grammar.y"4157 #line 1537 "grammar.y" 4162 4158 { 4163 4159 if (contBuffer(BT_break)) YYERROR; … … 4169 4165 4170 4166 /* Line 1464 of yacc.c */ 4171 #line 15 50"grammar.y"4167 #line 1545 "grammar.y" 4172 4168 { 4173 4169 /* -> if(!$2) break; $3; continue;*/ … … 4183 4179 4184 4180 /* Line 1464 of yacc.c */ 4185 #line 15 62"grammar.y"4181 #line 1557 "grammar.y" 4186 4182 { 4187 4183 /* $2 */ … … 4204 4200 4205 4201 /* Line 1464 of yacc.c */ 4206 #line 15 81"grammar.y"4202 #line 1576 "grammar.y" 4207 4203 { 4208 4204 idhdl h = enterid((yyvsp[(2) - (3)].name),myynest,PROC_CMD,&IDROOT,TRUE); … … 4219 4215 4220 4216 /* Line 1464 of yacc.c */ 4221 #line 15 91"grammar.y"4217 #line 1586 "grammar.y" 4222 4218 { 4223 4219 idhdl h = enterid((yyvsp[(1) - (3)].name),myynest,PROC_CMD,&IDROOT,TRUE); … … 4243 4239 4244 4240 /* Line 1464 of yacc.c */ 4245 #line 16 10"grammar.y"4241 #line 1605 "grammar.y" 4246 4242 { 4247 4243 omFree((ADDRESS)(yyvsp[(3) - (4)].name)); … … 4268 4264 4269 4265 /* Line 1464 of yacc.c */ 4270 #line 16 33"grammar.y"4266 #line 1628 "grammar.y" 4271 4267 { 4272 4268 // decl. of type proc p(int i) … … 4279 4275 4280 4276 /* Line 1464 of yacc.c */ 4281 #line 163 9"grammar.y"4277 #line 1634 "grammar.y" 4282 4278 { 4283 4279 // decl. of type proc p(i) … … 4293 4289 4294 4290 /* Line 1464 of yacc.c */ 4295 #line 16 51"grammar.y"4291 #line 1646 "grammar.y" 4296 4292 { 4297 4293 iiRETURNEXPR.Copy(&(yyvsp[(3) - (4)].lv)); … … 4304 4300 4305 4301 /* Line 1464 of yacc.c */ 4306 #line 165 7"grammar.y"4302 #line 1652 "grammar.y" 4307 4303 { 4308 4304 if ((yyvsp[(1) - (3)].i)==RETURN) … … 4318 4314 4319 4315 /* Line 1464 of yacc.c */ 4320 #line 43 20"grammar.cc"4316 #line 4315 "grammar.cc" 4321 4317 default: break; 4322 4318 } -
Singular/grammar.y
r2675bd r5638b9 951 951 int r; TESTSETINT($4,r); 952 952 int c; TESTSETINT($7,c); 953 if (r < 1)954 MYYERROR("rows must be greater than 0");955 if (c < 0)956 MYYERROR("cols must be greater than -1");957 953 leftv v; 958 954 idhdl h; -
Singular/iparith.cc
r2675bd r5638b9 2667 2667 if(strcmp(s, "with")==0) 2668 2668 return jjLOAD((char*)v->Data(), TRUE); 2669 if (strcmp(s,"try")==0) 2670 return jjLOAD_TRY((char*)v->Data()); 2669 2671 WerrorS("invalid second argument"); 2670 WerrorS("load(\"libname\" [, \"with\"]);");2672 WerrorS("load(\"libname\" [,option]);"); 2671 2673 return TRUE; 2672 2674 } … … 5326 5328 #endif /* HAVE_DYNAMIC_LOADING */ 5327 5329 } 5330 return TRUE; 5331 } 5332 BOOLEAN jjLOAD_TRY(const char *s) 5333 { 5334 WerrorS("not yet"); 5328 5335 return TRUE; 5329 5336 } -
Singular/ipassign.cc
r2675bd r5638b9 460 460 return FALSE; 461 461 } 462 static BOOLEAN jiA_NUMBER2_I(leftv res, leftv a, Subexpr e) 463 { 464 if (e==NULL) 465 { 466 if (res->data!=NULL) 467 { 468 number2 nn=(number2)res->data; 469 number2 n=n2Init((long)a->Data(),nn->cf); 470 n2Delete(nn); 471 res->data=(void *)n; 472 } 473 else 474 { 475 WerrorS("no (c)ring avialable for conversion from int"); 476 return TRUE; 477 } 478 } 479 else 480 { 481 int i=e->start-1; 482 if (i<0) 483 { 484 Werror("index[%d] must be positive",i+1); 485 return TRUE; 486 } 487 bigintmat *iv=(bigintmat *)res->data; 488 if (e->next==NULL) 489 { 490 WerrorS("only one index given"); 491 return TRUE; 492 } 493 else 494 { 495 int c=e->next->start; 496 if ((i>=iv->rows())||(c<1)||(c>iv->cols())) 497 { 498 Werror("wrong range [%d,%d] in cmatrix %s(%d,%d)",i+1,c,res->Name(),iv->rows(),iv->cols()); 499 return TRUE; 500 } 501 else 502 { 503 n_Delete((number *)&BIMATELEM(*iv,i+1,c),iv->basecoeffs()); 504 BIMATELEM(*iv,i+1,c) = n_Init((long)a->Data(),iv->basecoeffs()); 505 } 506 } 507 } 508 return FALSE; 509 } 510 static BOOLEAN jiA_NUMBER2_N(leftv res, leftv a, Subexpr e) 511 { 512 if (e==NULL) 513 { 514 if (res->data!=NULL) 515 { 516 number2 nn=(number2)res->data; 517 if (currRing->cf==nn->cf) 518 { 519 number2 n=(number2)omAlloc(sizeof(*n)); 520 n->cf=currRing->cf; n->cf++; 521 n->n=(number)a->CopyD(NUMBER_CMD); 522 n2Delete(nn); 523 res->data=(void *)n; 524 } 525 else 526 { 527 WerrorS("different base"); 528 return TRUE; 529 } 530 } 531 else 532 { 533 WerrorS("no (c)ring avialable for conversion from number"); 534 return TRUE; 535 } 536 } 537 else 538 { 539 int i=e->start-1; 540 if (i<0) 541 { 542 Werror("index[%d] must be positive",i+1); 543 return TRUE; 544 } 545 bigintmat *iv=(bigintmat *)res->data; 546 if (e->next==NULL) 547 { 548 WerrorS("only one index given"); 549 return TRUE; 550 } 551 else 552 { 553 int c=e->next->start; 554 if ((i>=iv->rows())||(c<1)||(c>iv->cols())) 555 { 556 Werror("wrong range [%d,%d] in cmatrix %s(%d,%d)",i+1,c,res->Name(),iv->rows(),iv->cols()); 557 return TRUE; 558 } 559 else if (iv->basecoeffs()==currRing->cf) 560 { 561 n_Delete((number *)&BIMATELEM(*iv,i+1,c),iv->basecoeffs()); 562 BIMATELEM(*iv,i+1,c) = (number)(a->CopyD(NUMBER_CMD)); 563 } 564 else 565 { 566 WerrorS("different base"); 567 return TRUE; 568 } 569 } 570 } 571 return FALSE; 572 } 462 573 #endif 463 574 static BOOLEAN jiA_BIGINT(leftv res, leftv a, Subexpr e) … … 714 825 } 715 826 static BOOLEAN jiA_MODUL_P(leftv res, leftv a, Subexpr) 827 /* module = poly */ 716 828 { 717 829 if (res->data!=NULL) idDelete((ideal*)&res->data); … … 1880 1992 sleftv t; 1881 1993 matrix olm = (matrix)l->Data(); 1882 int rk =olm->rank;1994 int rk; 1883 1995 char *pr=((map)olm)->preimage; 1884 1996 BOOLEAN module_assign=(/*l->Typ()*/ lt==MODUL_CMD); … … 1892 2004 if (lt /*l->Typ()*/==MATRIX_CMD) 1893 2005 { 1894 num=olm->cols()*olm->rows(); 2006 rk=olm->rows(); 2007 num=olm->cols()*rk /*olm->rows()*/; 1895 2008 lm=mpNew(olm->rows(),olm->cols()); 1896 2009 int el; … … 1904 2017 num=exprlist_length(hh); 1905 2018 lm=(matrix)idInit(num,1); 1906 rk=1;1907 2019 if (module_assign) 1908 2020 { 2021 rk=0; 1909 2022 mtyp=MODUL_CMD; 1910 2023 etyp=VECTOR_CMD; 1911 2024 } 2025 else 2026 rk=1; 1912 2027 } 1913 2028 -
Singular/ipprint.cc
r2675bd r5638b9 63 63 static void ipPrint_MA0(matrix m, const char *name) 64 64 { 65 if ( MATCOLS(m)>0)65 if ((MATCOLS(m)>0)&&(MATROWS(m)>0)) 66 66 { 67 67 char **s=(char **)omAlloc(MATCOLS(m)*MATROWS(m)*sizeof(char*)); … … 181 181 omFreeSize((ADDRESS)l,MATCOLS(m)*sizeof(int)); 182 182 } 183 else Print("%d x %d zero matrix\n",MATROWS(m),MATCOLS(m)); 183 184 } 184 185 -
Singular/ipshell.h
r2675bd r5638b9 79 79 /// load lib/module given in v 80 80 BOOLEAN jjLOAD(const char *s, BOOLEAN autoexport = FALSE); 81 BOOLEAN jjLOAD_TRY(const char *s); 81 82 BOOLEAN iiLocateLib(const char* lib, char* where); 82 83 leftv iiMap(map theMap, const char * what); -
Singular/libsingular.h
r2675bd r5638b9 18 18 #include <polys/sparsmat.h> 19 19 20 #include <Singular/mod_lib.h> 20 21 #include <Singular/subexpr.h> 21 22 #include <Singular/tok.h> -
Singular/links/ssiLink.cc
r2675bd r5638b9 60 60 #include <time.h> 61 61 62 #define SSI_VERSION 862 #define SSI_VERSION 9 63 63 // 5->6: changed newstruct representation 64 64 // 6->7: attributes 65 65 // 7->8: qring 66 // 8->9: module: added rank 66 67 67 68 #define SSI_BASE 16 … … 1139 1140 fputs("99\n",d->f_write); 1140 1141 fflush(d->f_write); 1142 if (d->f_read!=NULL) { s_close(d->f_read);s_free(d->f_read);} 1143 if (d->f_write!=NULL) { fclose(d->f_write); d->f_write=NULL; } 1141 1144 } 1142 1145 if (d->r!=NULL) rKill(d->r); … … 1150 1153 struct timespec rem; 1151 1154 int r; 1152 do1155 loop 1153 1156 { 1154 1157 r = nanosleep(&t, &rem); 1155 1158 t = rem; 1156 } while ((r < 0) && (errno == EINTR) 1157 && (si_waitpid(d->pid,NULL,WNOHANG) == 0)); 1158 if ((r == 0) && (kill(d->pid,0) == 0)) 1159 // child finished: 1160 if (si_waitpid(d->pid,NULL,WNOHANG) != 0) break; 1161 // other signal, waited s>= 100 ms: 1162 if ((r==0) || (errno != EINTR)) break; 1163 } 1164 if (kill(d->pid,0) == 0) 1159 1165 { 1160 1166 kill(d->pid,15); 1161 1167 t.tv_sec=5; // <=5s 1162 1168 t.tv_nsec=0; 1163 do1169 loop 1164 1170 { 1165 1171 r = nanosleep(&t, &rem); 1166 1172 t = rem; 1167 } while ((r < 0) && (errno == EINTR) 1168 && (si_waitpid(d->pid,NULL,WNOHANG) == 0)); 1169 if ((r == 0) && (kill(d->pid,0) == 0)) 1173 // child finished: 1174 if (si_waitpid(d->pid,NULL,WNOHANG) != 0) break; 1175 // other signal, waited s>= 100 ms: 1176 if ((r==0) || (errno != EINTR)) break; 1177 } 1178 if (kill(d->pid,0) == 0) 1170 1179 { 1171 1180 kill(d->pid,9); // just to be sure … … 1174 1183 } 1175 1184 } 1176 if (d->f_read!=NULL) s_close(d->f_read); 1177 if (d->f_read!=NULL) s_free(d->f_read); 1178 if (d->f_write!=NULL) fclose(d->f_write); 1185 if (d->f_read!=NULL) { s_close(d->f_read);s_free(d->f_read);} 1186 if (d->f_write!=NULL) { fclose(d->f_write); d->f_write=NULL; } 1179 1187 if ((strcmp(l->mode,"tcp")==0) 1180 1188 || (strcmp(l->mode,"fork")==0)) … … 1266 1274 case 10:res->rtyp=MODUL_CMD; 1267 1275 if (d->r==NULL) goto no_ring; 1268 res->data=(char*)ssiReadIdeal(d); 1276 { 1277 int rk=s_readint(d->f_read); 1278 ideal M=ssiReadIdeal(d); 1279 M->rank=rk; 1280 res->data=(char*)M; 1281 } 1269 1282 break; 1270 1283 case 11: … … 1447 1460 if(tt==IDEAL_CMD) fputs("7 ",d->f_write); 1448 1461 else if(tt==MATRIX_CMD) fputs("8 ",d->f_write); 1449 else fputs("10 ",d->f_write); 1462 else 1463 { 1464 ideal M=(ideal)dd; 1465 fprintf(d->f_write,"10 %d ",M->rank); 1466 } 1450 1467 ssiWriteIdeal(d,tt,(ideal)dd); 1451 1468 break; -
Singular/mod_lib.cc
r2675bd r5638b9 2 2 3 3 #include <resources/feFopen.h> 4 #include <reporter/reporter.h> 4 5 #include <polys/mod_raw.h> 5 6 … … 31 32 const unsigned char mach_FAT[]={0xca,0xfe,0xba,0xbe,0}; 32 33 const unsigned char mach_fat[]={0xbe,0xba,0xfe,0xca,0}; 34 35 const unsigned char utf16be[]={0xfe,0xff,0}; 36 const unsigned char utf16le[]={0xff,0xfe,0}; 37 const unsigned char utf8ms[]={0xEF,0xBB,0xBF,0}; 33 38 34 39 int i=0; … … 113 118 goto lib_type_end; 114 119 } 120 if ((strncmp(buf,(const char *)utf16be,2)==0) 121 ||(strncmp(buf,(const char *)utf16le,2)==0)) 122 { 123 WerrorS("UTF-16 not supported"); 124 LT=LT_NOTFOUND; 125 goto lib_type_end; 126 } 127 if (strncmp(buf,(const char *)utf8ms,3)==0) 128 { 129 WarnS("UTF-8 detected - may not work"); 130 LT=LT_SINGULAR; 131 goto lib_type_end; 132 } 115 133 if(isprint(buf[0]) || buf[0]=='\n') 116 134 { LT = LT_SINGULAR; goto lib_type_end; } -
Singular/subexpr.cc
r2675bd r5638b9 223 223 case NUMBER_CMD: 224 224 case BIGINT_CMD: 225 if (t==NUMBER_CMD) 226 { 227 number n=(number)d; 228 nNormalize(n); 229 d=n; 230 } 225 231 s=String(d); 226 232 if (s==NULL) return; -
Singular/table.h
r2675bd r5638b9 1221 1221 ,{D(jiA_BIGINTMAT),CMATRIX_CMD, CMATRIX_CMD} 1222 1222 ,{D(jiA_NUMBER2), CNUMBER_CMD, CNUMBER_CMD } 1223 ,{D(jiA_NUMBER2_I),CNUMBER_CMD, INT_CMD } 1224 ,{D(jiA_NUMBER2_N),CNUMBER_CMD, NUMBER_CMD } 1223 1225 ,{D(jiA_CRING), CRING_CMD, CRING_CMD } 1224 1226 #endif -
Singular/walk.cc
r2675bd r5638b9 6793 6793 // We only perturb the current target vector at the recursion level 1 6794 6794 if(Xngleich == 0 && nlev == 1) //(ngleich == 0) important, e.g. ex2, ex3 6795 if (MivComp(next_vect, omega2) == 1)6795 if (MivComp(next_vect, omega2) != 1) 6796 6796 { 6797 6797 // to dispense with taking initial (and lifting/interreducing -
Singular/walk.h
-
Property
mode
changed from
100644
to100755
rcb5589 r5638b9 52 52 53 53 /* Okt -- Nov'01 */ 54 // compute a Groebner basis of an ideal G w.r.t. lexicographic order 54 // compute a Groebner basis of an ideal G w.r.t. lexicographic order 55 55 //ideal Mwalk(ideal Go, intvec* orig_M, intvec* target_M); 56 ideal Mwalk(ideal Go, intvec* orig_M, intvec* target_M, ring baseRing );56 ideal Mwalk(ideal Go, intvec* orig_M, intvec* target_M, ring baseRing, int reduction, int printout); 57 57 58 58 // random walk algorithm to compute a Groebner basis 59 ideal Mrwalk(ideal Go, intvec* curr_weight, intvec* target_weight, int weight_rad, int pert_deg, ring baseRing); 59 60 ideal Mrwalk(ideal Go, intvec* orig_M, intvec* target_M, int weight_rad, int pert_deg, int reduction, int printout); 60 61 61 62 /* the perturbation walk algorithm */ 62 63 63 ideal Mpwalk(ideal Go, int op_deg, int tp_deg,intvec* curr_weight,intvec* target_weight, int nP );64 ideal Mpwalk(ideal Go, int op_deg, int tp_deg,intvec* curr_weight,intvec* target_weight, int nP, int reduction, int printout); 64 65 65 66 /* the perturbation walk algorithm with random element */ 66 67 ideal Mprwalk(ideal Go, intvec* curr_weight, intvec* target_weight, int weight_rad, int op_deg, int tp_deg, ring baseRing); 67 ideal Mprwalk(ideal Go, intvec* orig_M, intvec* target_M, int weight_rad, int op_deg, int tp_deg, int nP, int reduction, int printout); 68 68 69 69 /* The fractal walk algorithm */ 70 ideal Mfwalk(ideal G, intvec* ivstart, intvec* ivtarget );70 ideal Mfwalk(ideal G, intvec* ivstart, intvec* ivtarget, int reduction, int printout); 71 71 72 72 /* The fractal walk algorithm with random element */ 73 ideal Mfrwalk(ideal G, intvec* ivstart, intvec* ivtarget, int weight_rad);73 ideal Mfrwalk(ideal G, intvec* ivstart, intvec* ivtarget, int weight_rad, int reduction, int printout); 74 74 75 75 /* Implement Tran's idea */ -
Property
mode
changed from
-
Tst/BuchDL/Ex_L5.res.gz.uu
r2675bd r5638b9 1 1 begin 640 Ex_L5.res.gz 2 M'XL(",T0"TX``T5X7TPU+G)E<P"E6FUSVD@2_NY?,>6Z#U(LL&8D\;(^4[6W 3 MFWA)0BZ.DT^I)"6#L+4+B$7R&K%U__VZ9S0](Q`&[DB,8::[IU^>Z>EI^>[S 4 MK\,/C#$^8.^'_V+G15ZT9^G]^=79734C!@P&?Z2+M'#<JS/\S08#]GK]XWW4 5 M7B3/[;R("Z(.!HP^AVWS.6JSR\OKQA<#6?%\.4N`B$>LF:AZD;Q.FZW2Q0/[ 6 MM"XW[)KY'G/67NEMO,*%CY.E$[C>)'>XZQI+N@.63I)XQH;`L1:M0G3+C<?6 7 MFU;!@Q(^P.]P(PQ#;\#FV>0)-!L!1UYNG*%[96SJ#]@2E"B<$2S2XAYC+1!W 8 MM@$IWAJ^G>$;*T&X9N'^`-S0&L"PCW/PDGPTS]MZ?B-`3&OM26DT+V@>M$;) 9 MWAJ%T'Q0N>7=EEO`*9,E&<9#\@0'JG0>+QUTI(?F&6&1,;].-D*RRTNV2B9/ 10 M8URN>$S0/>5#FN3$WADHOKR8."-NXL"[Y#<<!9^!#]!7H.T9_*PM%7KDKXI, 11 M3_2-(Y!1CPN_;3EX3</@5VV*T*'D:`6:H35GV4):(LTJTFQ!M@A!*@M0&42C 12 M+O"#*F]J*HO`#K&EL@A)-<E(XY&)N:TR(AP526!-3WKJQU?^[7KSZB%9`+I; 13 M^$NX,"B^7?O$U:75&ZDU6:]MR&K\?;-G`_!EGA2TS2B``=?P>0N^'(*5Y46Q 14 M"<P\>$MOF+<F[@%X1LM[5Y-'<'Q;QYG-'`V:4'@(A,$^$`9U$&*H),!\&58% 15 M1OB\D1_@:^F=^=4@1)ND]&K!UA+T;-^..,FL9D/?CCNMHF>Y#>1J79J$-$`X 16 M?JMP?!R0PZ`!R+Z&LC+8MM:8&H9;N+8LB>K(MHWLU,!=L["[9:$Q#]"9IYO$ 17 MJ>$?U26*OE%&CT6^@6[$K<_@K#_2V4QBV*L!+Y)[=?=`LLZC+G/@C&-W29Z# 18 M']T73B<2&NH<_&R2\+/7D(:C2./^C3R0\"CRV#-XZ5F4AJICCM0(?+9<96,V 19 M2?/E+"Y_2V?W'[-9Z2@Q-[3!(W#A^9>[GV]>_\1VB&]`C1N635E1+A.E`?$! 20 M9'^^N_LR0KX;-G_*"W:?L)@]9O,,<DB2/>7L9I4E]XMDQ>[C/,W9-%NQ>%%9 21 M@E(!>5I>!X)"KQBP^%>BG),JA-X-/]Q\>?_S)T@,TL%7+(]+U`[76L4%8+DF 22 MCEOB;)7TN0[+?VH3-43^T^O/7SY]`&,^9(O$S,`Y^>'?G]%(QGY5[E$KH9.2 23 M5<&6X*A%-D^529\NAX87XGM.7P#Z?].7#FH'FXM-()Z3=`Z>;O&K2EW8GY/D 24 M894D*/"W=&L5DM&K9/R5C-DX`SF/H)%SXPDZ<Y>K)$\64'2!O]APJ,0IK?-D 25 M926_KJ_UR3%7X(X:9Z01Y@M4,WEP;G^,7';!B4\@GPS3;:$`7$C@:K[Q8[QX 26 M2&KQ+#)V^[7X1B)"%('FL5L\"GR"<U<Z"3'CH&;I-:B3_O,ZA_?K]((3@KO2 27 M$>3;7@4D*>UV=#'.OJ;?7A7?G;1E9?6>U/P_]-76(I6,5P0?-`0C;D4:_.`4 28 MI$&/PIE.XS%P<U/[]:1VLQ2V1VQ&^[ZQK;)K<L&W+>N+FF7]4%D6X^&V@`@6 29 M3NRQ_.D^+QS0VBL\[EZB!AZKV=KO:(^D$FW3J8/T+E3`AJ:G:"H#\->K5,]R 30 MW[>]Q7U!WOJ(7G9@M>_.Q'T5?P4KOI&9W#=NO8=]C(ZAJ<ZN![;LYWXMLIQ7 31 MD56BX/V54URD8+(^U<;9?/E4)#BEPC3.DNFTS>Y+V`SCIQ7F#=*-"R5-6O!Q 32 M=%$9T4HK,UJ`&A!$"O.PY@,N]5<GY,>1:\A`9T/4IXS,L>#<SJ]8:[QQJ_T* 33 M.Q4R)29M.,Q6"9NFJ[PX"PK:;EQP.LQJPZ)M5@FLSV%UGLGSA304T:&S3`2G 34 MGF4<B]!T"FQ9X4R2:;I()DZ:OYG%A>NZ?ZL;(Z;A6?:@;HW&2:*K;VAV!J%9 35 M<[5:/B)^57T*H0]:!K]<@*?5>@Z0614`#_R="H`'<#I,@?9]-G[**P99!:-0 36 M(A+U"KDV9[DYT,?X'=VC"H>WV\*M+I@<+IA+HVH0;=\ND8*M7^%O^"*J+\*5 37 M,]^%X80#'B$S)'5Q/I`\WX4J\&N<,!2HH4HR#(0P\%TM2G*W[@)UL9IHZR90 38 M7T@3]2VBK:4K$JN:;50&ZUD%!U[A03E3G2M$)1I@P1$6MN[`1`R!51#@BW!4 39 M9R#ZL)E>&ETMIFPW+-$^%FZQ"(.$L+,/M&%W%[18[#:#MBE<5N&[GP@KX3_5 40 M\5W=?.K>($TCON5N=;GBGE)#4XE]]D3!KCU8_NZQ1]]6;5Q$T;9!!E-1IX[- 41 M&E_7;%4L=NES7U?[WIT'EMR2&1W_4((,Q,D)$@O2[03Y+LLW3[/?5%HL#R;* 42 M#KC73I0-#1O>"71RF6)RV6"?:5VVL&=E:$(*YE!67#9FX2"*6:UPG,=P$U_+ 43 MXO;Z]JM<\QN)BO0ML6Z+,_6&GN^ZVZ+]XI$I2E896<)%LO36)+`S,-=`>US> 44 M9_8LQ'<7XE!O;2]$R.OT=M'8,?T,CN6P<N(#.K%4URWK".WR/68_'&\V7#%! 45 MZKHDF>:XV9D*]AC_<+SQ``0?KI9X;2\]WY@:VGTS2:%G:MTFX*&)S@O:B%UM 46 MQ&*R/Q3=AD37M79IUPH+5O9JQU(@>OS@5@U/WJH]T=""AEIR4:2+)[4G8#/4 47 MECA":&!5"8'P_0!0Y?CM=EC?P#VS.4?#ZWF\ED!T3#G/>[#GX@+VY+TS&GKG 48 M:8X!>#CWU%40RUBK-\M[L*%@-V>S)ZGX'QE>Y18P@LR^)97:7/=)4:0.$+K> 49 MN?Q\#E162'WYSN6[D.^!?`_E>W36.OJ%4EO\)TM>)#_ZYEV-,'Z*U"(KXMEQ 50 M4LEZDQ%.L%0S6]V[X[6LF/NF'#K!&YJ9_S\KFT<$)WA,,UL%,-Y+JT,BGBT? 51 M8Q\0MHH7DVSN(-"%QWTO,$CKFZ<%>,X`L?KF*&;W`J`'M:.A-VTMWH=CH,(^ 52 M\NZBGWL[_UQKZ5YM,TS'V1_):I',4`?<$E*FM2GZ_?JF((;CM\8!X$KN*NC= 53 MDV%O0[V)N[(#@G`DO(GA6&`1@[!A_))%FB$X=86P":XOK1`11`5V&RK,3=(5 54 MA+L`@.;++$]DS"GBPL='?ZJG]@QD+>Y5_\4+_PUWCU(S+&.A\]E:H5_'H-)' 55 MP@]Y3-$M\!E@#7TP?PSP]H)&YEOQD^4RZ3Y62\0M^UVNX>].[`>F!<G:&@:, 56 MG!\$(Y&*@R`ATJ"61QNMU*1A4\JMVZU)HQJL&SVA23O'Z]IM@/*6MS2IJ84$ 57 M/LK<OD+@!:I(%N;NH!+QUM5!"-_N.3Q4;7G-+9$%]R:3*06VFBR4OAEJC-I% 58 M@S!/.Q5"WPQ/K1F..M=M%/+=8%E0;8KE#I&PB4Y/NCLXKW1Z*0%;SWJ/\HIF 59 M"T\ZWXFM$;7[/:?9.DTY?+\O-5NWQG;0NYJM][_9UM]?M;RP6F">^0GL_F&S 60 M?IQ-TCD">_%7O,J=.[>%3V*&!M[8`51$5V>4DP(32C,&<5*/;-3??>`3G'2> 61 M+&3#&4Z8[/>VRV`A<6:>[=`PC%/``]/D,&,0EIJ&M'WGZ2);.;_'X^P>UO64 62 MJBZ[8$/<R1$),'<L,V;EE:`AKTR29?%XJ",A0D@KDE*:#;8-69KO[Q_<70[/ 63 M*"*A.0;,F&C+IV&JR0DV4$$2&J^;,?-G0R*T#GOU*/FE2V'8.?52*/`A]&Z# 64 M^Y?181_UFKHV4!'8USZ![3JK*;QIE<)CSYL6-A^>R];:U!B1K^7]F&7C79FY 65 MH>2V3-6Q\RQXJW;=+R.%60J"U:OCY-/(\G5D^1H[;]1%>_;T;M&SW4/7\[!_ 66 M<B2PB7?8H='1#L5VW_!:]]7U(/ANEL1RK)ZT]=-`G)7/I^53<=F2+'4/OJP: 67 M[Y0@.EO/$DHS$VRUU4N:";=ZZ8;'"@`^2L:_NL._K7O"/V.[^L?9?P'!SB() 68 $JR<````` 2 M'XL("-IU6U4``T5X7TPU+G)E<P"E6FUWVCH2_LZOT,G9#W9BJ"7;O#0;SNG> 3 MVZ:TI=N$]E-/VN.`(;X7;"XV#>:>_>\[(UDO!A-@ES9@I)G1O#P:22-&7W\? 4 M?":$T#[Y-/@7N<BSO#6/'R^N&Z.RA_4)-/Z,DSBW[.L&?I)^G[S=_/P4M)+H 5 MN97E8:ZHO3Y1SWY+/P<M\NK53>V+@*QPL9Q'0$0#4D]4OI2\=HNLXF1&[C?% 6 MEMP0UR'6QBF<K9/;\#A96I[M3#*+VK:VI-,G\20*YV0`'!O6S%FGV#IDLVWF 7 MU"O@`3[]+=,,W3Y9I),U:#8$CJS86@-#7*]/EJ!#;@VAL4D=0IH@K;$%(<X& 8 MOC7PC10@6[)0MP]>:/:AV<4^>`&?ZJ4MV;ME(*2Y<;@LU<]4/ZB,<IV-ZO-* 9 M?WS<\0=X8[)4.E-?N8`"5;P(EQ9ZT#'LHH&VNDH$=A+0@*RBR7J,@^5/$7JE 10 MF,51IMC;?<&7Y1-K2`VY'>4O;`5?H>W@(]"U`7\;HM!"N\I/)9GLZ&D7(*-L 11 M9V[+<*SR"@./2E.8C"!%*]`,J3E)$VX)-RN/TT39PIA2F8'*(!IU@3]4>5M1 12 MF7EF:`V5F:]4XXRJ/=#1-E5&8*,B$8SI<$_]_$X?;K:7LR@!4#?Q@]G0R!YN 13 M7,754:/74DNR;DN35?A[>JIZX,LLRM7L4@'TJ`3/!_#E`*PLKO*MI_O!6W*> 14 M?-!Q]\`S4M['BCP%Q@]5G)G,0;\.A<=`Z!T"H5<%(8:*`\SE815@A.<M?X"O 15 MA=-PRT:(MI+2K01;2I"]/3/B2F;9Z[MFW-4HLI>:0"['59V0`!2./P@<GP9D 16 MWZL!LBNA+`PVK=6F^OX.K@U+@BJR32/;%7!7+.SL6*C-`W1F\3:R*OA'=15% 17 M3RLCVP)70S>@QC,XZ\]X/N<8=BK`"_A<W5^'C&6H0RQ8VL@HRC+PH_W"HJ2$ 18 M^C(#/^L4_.S4).$@D+A_Q]<A7($<\@Q>>F:%IFKKE30`GRU7Z9A,XFPY#XOW 19 M\?SQ2SHO+"'F5DWP`%QX\6WTYO;M:[)'?`MJW))T2O)B&0D-%!]`]LUH]&V( 20 M?+=DL<YR\AB1D#REBQ1R2)2N,W*[2J/')%J1QS"+,S)-5R1,2DM0ZE,DQ;4A 21 M)NH5`A1_1<(WL0#H:/#Y]MNG-_>0%[A_KTD6%J@<#K4*<X"R*8T:TDR%Y&(. 22 M@]^W%#7$_?[MUV_WG\&4SVD2Z1Y8(S__^RN:2,COPCE\(((NBE8Y68*;DG01 23 M"X/N7PTT+T3W0GT!X/^MOK11.YA:9`+1G,0+\'.37I?JPNR<1+-5%*'`]_'. 24 M*$I&MY3Q*QJ3<0IRGD`CZ]9A:L5=KJ(L2F"G!>XB@X$0)[3.HI61^CJNU"?# 25 M3('S:9PJC3!;H)K1S+K[.;3)%55\#/EXE.YR`=^<PU;RC9_"9!95PIFGY.Y[ 26 M_J!$^"@"S2-WN!"X"LP=[B1$C(6:Q3>@3OS/FPS>;^(KJO#;X8Y0ONV6..+2 27 M[H97X_1[_'"9_[#BII'3NUSS_ZBOIA8Q9[Q6\$%#,.)&I,$/5JXTZ*IPQM-P 28 M#-Q4C\.5F\<P-T+5V'.U9:55DRNZ:U>/5>SJ^<*N$!>V!.*76Z%#LO5CEEN@ 29 MLY,[U'Z%XSND8FFO+?T1<ZQ-IQ;2V[#IU31=05.JCQ^7L>REKFOZBKI,^>H+ 30 M^MB"T7Y8$_LR_`Y6/&@V[=-'F,.&5ZC;WG?`COG4K825TC*L0A2\7UKY50P6 31 MRP5MG"Z6ZSS"+A&C<1I-IRWR6,!,&*]7F#.4,":$<?V_#*]*$YIQ:403$`-R 32 ME+[4KWB`<O7%VOAE:&LR4%D3]50NIKC5W,VLN,MX9Y=S%68IY$A,U[",K2(R 33 MC5=9WO!R-=4HHVH9JS2SEA[%,Y[]<B7C*XO2D`7'5C'FG;N*4=Q^QE-@2W-K 34 M$DWC))I8<?9N'N:V;?\MCHB8@N?I3!P3M9-81Q[)S.RA>O59:OF$Z!4[4XB\ 35 MU]3HI0P\+<:S@,Q8^ZGG[JW]U(.580JTG]+Q.BL9^/X7A2HB5MT;5_H,-WMR 36 M`1^I\U-NT5:+V>6)DL*)<JE5]8+=XR12D,TE?L(75GYA-N_YP30G+.T(F8%2 37 M%_L]SO.#B:U]A1.:/-%42H8&'QI^B$&5W)U30%6L)-HY`U0'DD0]@VAGZ)+$ 38 MV,?6*H,[60$'6N)!.+.""I_5H((B*DS5;4?1>\96`%\*10?H_7IZ;G(YEK!< 39 MLP2'6*C!PC0._/8AR/J=?<CB)K<>LG7!,C:\AXEP!_R76+C+$T_5&TK3@.YX 40 M6QRJJ"/4D%3LD#V!MV\/;GL/V"-/J28J@F#7((VHH%U%9H6OHR<J;G+5<T_N 41 M\IV1`Y;<*3/:[K'TZ+&STR-N17?3X\<TVZ[G[T52+(ZFR3:XUTR3-64:VO9D 42 M:IEB:MEB76E3-+%$I6E\%<P!WVN9F(5E*"25+>,BA!/XAF]K;^Z^\S$?E*A` 43 MG@ZKMEA39^"XMKTKVLV?B*`DI9$%'"`+58VB[79?'__,=GZ..3`0W1^(PE9K 44 M=R`7#J>4;*-56MJDA'?WT=G6=0V*&V/AU!DZM1#'+F-![=`#;IB=[@8X:H+4 45 M3:%DZL5GK\L[X(S9Z<X`8+APQ,3C>^&XVE3?K)]Q"ME3J3H!C^IHOZ`-V]>& 46 M)9/30].I280=8Q9WC##AGE_,:!68+CTZE?VSIW*7U52D8:.9Y'&R%G,&)DME 47 MB!.$>L8>PF.NZP'*++?5\JL3O*LG[W!PLP@W')B6WNK3+LS),`<G/EK#@7,1 48 M9QB0V84C#HFXR35H8;K!7$_G:Z[VGRD>\1)H05;7H%/%K\<HSV,+"&WG@C]? 49 M`)418)>_4_[.^+O'WWW^'C2:)[]0:I.^-N0%_-'5[Z*%T'.DYFD>SD^3JJS7 50 M^>$,2R6S4=,[7<N2N:>W2F=X0S+3_V=D?65PAL<DL[$YQA-KN82$\^53Z`+" 51 M5F$R21<6PIPYU'4\C;2>OD/`50B(Q3=+,-M7`#W85VIZ7>RB/5@D2N0C[S[V 52 MJ;/WSY@,O6YE,DS'Z9_1*HGFJ`-."2[3F!2]7G52*(;3I\81X'+N,NB=LV%O 53 M0KV.N[0#@G`BO!7#J<!2#,R$\4L620;OW!'\.KB^-$*@(,JP$%%B;A*O(-PY 54 M`#1;IEG$8ZXBSER\!Q2UMF<@:U*G_,]>^*^YNRHQPS`&.I^-$7I5#`I]./R0 55 M1V_)&=X(5M`'_:<`[R!H>+YEKPV7<?>12B)NFN]\#'>_XS`P#4A6QM!@I/0H 56 M&!4I.PH21>I5\FBME9+4KTNY5;LE:5"!=:TG)&G[=%T[-5#>\98DU3LAAA>< 57 MNP<,/%[E4:)/%B(1[QPL&'/->L2L+-9+;HXL.%7I3,FP#&6@]-U`8M3<-#!] 58 M!RH0^FYP[I[AI'7=1"'=#Y8!U;I8[A$QD^C\I+N'\U*GEQ*P<0-\DE<DFW_6 59 M^J[8:E%[V'.2K5V7PP_[4K)U*FQ'O2O9NO^;;;W#NY871O/T32##RB`6\<?I 60 M)%X@L)-?X2JS1G83;VCTKQT85@<%T75#Y21/AU*W09S$50YGQXN=>!$E>-P@ 61 ML,"D?[1L`N.PAK[R4<W0KN+MZ0J(;H.H5!14LW<1)^G*^B,<IX\PK",TM<D5 62 M&>!$#I0`?<#2;49:\6K2RB1:YD_'RA7,AZS"*=%J//@-2)P=+BZ,7@T:*B"^ 63 M7@5T&VOQ2S)1_P0;U'[$UT[7;?HG1,PWUGIQO_S2B=!OGWLB9'@SO5_[_FUX 64 MW$?=NI(.;`C,,Q_#6IY1+]XV"^:0YVT3*Q'/17.CMQB!*^7]G*?C?9F9IJ2F 65 M3%'.,W[+PT0M[[<AAZR*@5''TVV&IP/#TUB44P6V9T=.%=G;.78R]WMGQP'K 66 M>\?=&9SL3JP$#FYDP5TV@N?F4<C;JAE;7A%B+[^SYA?EO%I9R.)\45;D579H 67 L[UPR%+K'VZFW%ZK'WRFR:QXC`'B_C+^_PU_9K?$';=?_:/P7T_42U+4G```` 69 68 ` 70 69 end -
Tst/Long/deform_l.res.gz.uu
r2675bd r5638b9 1 1 begin 640 deform_l.res.gz 2 M'XL(" )`IVE0``V1E9F]R;5]L+G)E<P#M7/EOVS@6_MU_!;=8H+9)IA8E'TG&2 M'XL("$QZ6U4``V1E9F]R;5]L+G)E<P#M7/EOVS@6_MU_!;=8H+9)IA8E'TG& 3 3 M`:S+CN/TV%F@`P1IQHW55CNVE5H^)`_F?]_W*.KPT29NT^YB$">Q)/+CX^/U 4 4 MO?<H*;_^VSY_20C1SLB+%R/O0S";W(R/YN&\]*O*$4>0,PZF'PF9>^$\)(`A … … 9 9 M:C@=(1Q3\=(/R>?%,/3YIV`2?/2F7K`(`7XW\T)O.O=&9.6#M)7G?_PTYTOO 10 10 M=A[,2C6V\8.B_.D'[%LO]"?0MJ3SAG,_F)X0-SPA)=E0VEGKU(S6@EKP9T=K 11 MZJRI&]-N1'O%3D"!-S<WQ`'-4$9(@@]D`O*3CBBT#6 &E^^#S8`[?.?XP7:3X12 M YXFHY]`S\\5L"MTRE(/#2#B,R8!AC1^"Q4S.@/"(G$_)X$J[)L,9*`I=YHU.13 M 4`PAPY!`O\S\2';+AL9%-?'RDU=L1*%+V;:H_K:HO7VU4^Q?4"R,U_%'WY.E14 M 7,@)1B#M2$Z.@`QO;[TP1$U`QF@X'S(RC^^\$L$/*$1>1VULYBD)O;F<^Z^C15 M TV2!E-VPDI[V\]-_P:GLT,&5N(89BZ5?N`'QHKDW':&$-T'[=0!)+$'IB,*N16 M \";OO9%$R(I4!^UOY.#*R(3WPX)PE/<"VY>M,B"I/_SQF`SRA2?.OLXZAW\R17 M T4!HBB*T(D6P186-[G(-C)PDZ@"+=!X+!A,R6L#,9/&"K76^R)E'J^]217V;18 M *K3:)E<T'I\6=":8S@SX$4Q+_AY"#;)YU(F@A=2$-1C1[H*>Q]!::BYH%U9G19 M 'RD2UBFNSQ[D10(Z@5H+VL-,N)+]03L+:DON`$*?S<EM,+E;S&5-H`-4_''F20 M >6![$#&%.4$\M61P,N4SZ*3$[2X75I_!28\Z>.STN'/.2AU,AZ/3I<+JL9)]21 M 3CM]%%>MDCYVV33`NJ>CX6R$$OWP/FWT!VO#A2NZJ4IXT:/"%)ER'"YV-$1$22 M 5ZE)H<CY=^EJ)+H&)'@?SF>+6\S&%!S=\),WPO/=.9-,D7VL5-*8^A7R-SO'23 M ;W*@#=CHI9U.*O:1ZJ)B#VUVT"&FQ`VO-*9=,WD4ZJBKHZ&.=75L7#\9D[^U24 M ,6GDO-V`(FLAO8@%!]Y>"!XOI%^QR'D;W<F<LAO0L-06;5#W%G,;DKG]C_[H25 M 'YFD5L%FP?*=PJ"#6#*3HPCZ3'&XQ^1V,5OB?/#2-3TB]QNMXR-HU70NAPFK26 M S_07->7QS@1)S5E9.SH:4:VRX?4*+>^8)@`GPTA>E;5*C@&SF\ZE"8SGU0A[27 M W6]>H<!K!B="2K[.2^AG1'T2J3ZTLCQAHB#4V('@Z);]9@&SQWHVMZVGL3D$28 M ^N,;3Z`1_'F(P3R4=+[?(II5&PU-U:;V.R!HJVK?:TF^WRIHA]H`U#)34NGX29 M 1.9/9/Y-9"Z0S+_8$C?\4A/4)&I'95%Y!P8`.*X:E?4*-ZN81.TJ)I74').P30 M )%\AC0I,X0PI%%+/D$:&K%>HE2-UA300J2=5BX)`O4)->552TUC"4H%""31S31 M N:G`!B*-1*"N8)T<!@)WUEV-X31(OA'(LJO\B"6IQ8B574,?="CP3+$<E_I932 M ;+N472B%I[()U&1$E9;EF)17J%.V@'98BDZ/:3[$(K+6HOZ[=1:D":P<AT,F33 M E9):;:6_2#63=>;2$G1Z+-:-;4G*<96-5]QD.^CLF)JW;-JB3Y%X$0PF:I:\34 M X2`,;D8WHQ.PYDC',_\6"&L*"QU,0N?=5SR"_?Z!0/]`?3;]`SWS#_1VYAML35 M >@:Z]`S`N9BRR6GJ(K3R;'0*<'.P/&UKI]-?1J?3]A2\BRP?`FKR9X*88,[I36 M Y)?VZ'32G@"(_.FWVGZ+1>4I3MM)Y?2OK%P=RN57C<Q+@,JA"6!X[\;^A[@,37 M I;5:[BKHS5U7H04A[[-)C.U\=L_VW`\(N;]A)^Y_XCT`5=C<JF(`:U8=.'.`38 M :B""!M;@=M6E+F8YU2Y068]WDQR'.U47>*4G70\+"KH'>1V'>0Z9AAL*%O4K39 M JE?4KJC<D[OQY&Y\D[NAM^YQ-PJ.A;3^8+BZR<&L=@ONA'(WE$\`!Y>[*4#/40 M `>M(1P1E=<!R4,R+]`#WU`V#VYYY(O>")*(^".JDBO8++H)P+Z2O(0R]K41 M Z_%>&V74BC9JOH+!&(_]NSG8IQ`Z8C$>SOQY3$AYKK6;DCPUG<U%6Z]\T61E42 M HC6U\3IKD,V-5[9DJPH;Y1;)$'FL>@S0Q9*O5S)\7V$H'R]9#`']"G<GEX(O43 M 5C*FAT2A+J.8KI<(C@1=8]"?2]9WK<?QMLEH_H1`L\8T]N/"S>385,>6.AX_44 M AB&Q;.JXW`93T;&Y@\:DXW*K2[OB,39A?\#&YK?'LEE3DY9N-/0'&IDO#MZ345 M \?D;&Q_#>*CQD6S(.VMNQ]2):'=).TYF?"1)\DY,S<6*6@ON+*F[PILYMJ#"46 M [,*IH*;MT(Z9VR-)J=1<K_#VCAUQ9T%=N+9C;CHK;H$7!G4XW<Q$2?+EG8C:47 M 2^ZL:1?4$+EA4IQ,3<"8*T&MB%LK;B<W=B')7E*LOPM2X\Q420*G-N@+FMNK48 M DEH"[93241*(`0%)X9):&^V4ZC<:FK2SI-9-.[4"M!.AONX"E!#<!$3:]_7]49 M QK"1QD[-'8NU<;/0:&;VZAP-2!2K.X5HE.3-0C!9ZP5;+]EBF9=J[=BB<VWG50 M EF%]TQB)V@\/8`X/9V1[Z3DVF3K8:MK!AM/^FE[&>)O07="7<`*3:DE?00\N51 M <*`NUM`AU%K2`?0H#/Z2]A:/<><0:-ON4NL"XQR+6GUJ7N(II+K4?(D&RZ3G52 M \J8=Y)[S<\SM0"Y$$S*W1YT>[;S",CWJ]KB+IU:/=B'L&,"I"S:@3UTLYKB)53 M )`>2E"3G@IY?T$32@)X/$DGN!>U?\#ZFF@/:'_`^IO8NN#V@%RCTXI)W7])+54 M !`PNN?6*7DK`2VZ_HB]?_:B8JZ\L4U]9IKZR3*J+^LHP]95AZBO#U%>&J9\L55 M L.2HU:X9\+'JDR0I%:GIZ8F1GJ1BM52NE@K66E)0<IY*%[7K0\UN%'-0Y#N-56 M ;CXSGZSOW]GZ'C\X],-9E<=Z2'OT_#*/[9`!8?GG\1R2(9!`9B!37LQMG^+'57 M W.@IGLR,7,J7F45+>5-I54.G0$U3U:!Z;:])JVMGV39E7:0!62LU;RO<'CRN58 M ;!BWNIX;-QU@JW(+-Z)7Y4:ENBH?5U@&-/)-2/RLRDU$M"J`K6]CZ]O8>H;559 M M[&-;:R18<4VMKFK@U36V`:VMH&R.<V]"ASO5;:Y3X%&;:^R$JMM8[5MK+XI60 M MU7`BFVLV)1;Q.I[]6UD;2MB=P;-R+`[.NP9--FY2NT<N'_$ZIG0(G9GQ/1-61 M ;*.`W1DTD6&U;>S.H!F)LMJ6`LV=$9,*&)D"]0)V9\1$AM6VL7M&+%=`+P!W62 M ADNU.U\0[\3FS&GNC)JV640D=6R5VAD_59$:1%E+8;R;.\.H%?!Y%:U\=[X)63 M GK!R:4GJT^H[/NT/WY+_F7LJZ*ND-)RD::E0+96JI6*U5*Z6"M92R>C_9*)264 M \>C_N,K_42>9QJEPD0H7QF-L\/#.._%=.R^U0_=9:@SKE.$&%U5Y^C_:8OG_65 M &LLGC_-O['$V6V</<SBW_:W,]]SC7]%.`:(C9,>MDI!6_J#"'F]*0IKYO89M66 M )RKS7/<X3106<*&"9J9#T5O*'-L]WE'FX^[QAGA'FMC<Z]WC!4E,^H2%IF7U67 M %[T?V<!&BA&9'D6OAV[4I?JRZ.V44A)H[W%O2BDQM/?X,SSIH_3A#JV1-:3H68 M R2A4>L]':R85%7V84DHP[3U.2RDEG?8>+Z64$E%[VRTII<S4_K(?HOI&9M*T69 M ,851%[)+O^*2T&20B@+$A@"]4/VF=T+UO+YT"(51J&_'.5$EE+1L_1V?[8F/70 M 6C65.JNQF<9F@LUT-FNP69/-6FS"IFR48^7+58_]R:2GT1DAKX-L\W$C,FM!71 M 9)8$9N0<(>%\5([>&31^I^<>6<LX2UGW,LA3ZZA[N_@ALS\(>&</^F1BP$,$72 M XEZ,/?(':5]%U^PJSA\.;8$SJ'(GY5JE_4>>TRKD:!4HR6(H*U^QT`L"C@LP73 M @3`]Q^6PXUH!IB-,Y#!1P&D%G`&XF$6LAL`(O0^.9?#`>%&XV-M3XL">.M:/74 M \KKKJ"-4D^B7*,JA;3R2:L-9)&(6%U4W"JHWTN*@OVI`C$K#!;[)EK0H2ORI75 M I$W8(1L]!L./3_SXS_.DADKRVXT\$490/MCC/V\;I_[S7WP?OMO^\\+S/\<076 M E/V97<BHZS)H3Z!(-@FUFHR;5&``[;A1L<%EP,Z#`DQ&0F@5WZ!5S-NOU63H77 M DECRR[!0HIFG#XKIQWEZOY"N2474NG\3Y>E0\U]HP)<8EY2=:/Y.5-+8)$_378 M *EOQ"B0F`0N<2*]9)MP7LIR0JGQ%1[ZLLQNJ2*\AQ!N@,36I!8,JJ!-3%X:W79 M P_`A-6I3EW72A]8(!QCN/+/D7#W-QP%&\G@``@"\?7#_@T*"XJZYH*)CTXXK80 M M\NYZ%C;DO1#)7%A"X<+TQ'<@C_'%9ELVH$$R':Y83H`M/#+=@5W=5:R=-X181 M #@-Q+LAS0:"+$ET0*;:5,GZN4M0VJ#"E!`N^J2FPB(F2A"7/009H#6)!/,K>82 M UPBI@RN5<%$+%]30MUM6__]N&<7:="CB&-2"/T<_N+5IO%F(5DOU@X//.BL983 M \E>7KS'I)`FB<LXY+)`27PVD+B&,48LZ&1*5KD*$)'""BA+FWHF"!E!\['_`84 M /8PT&-H;8'TU6-L?J#TTC$IY-HL^WF1AU&4>.PTV(ZI2Z??+\/?2[P/\ZL/785 M S^--@]7E"XXZ,[[&F_AJ<02<R9$S8[P'+:@;JZ>2=6K&W`*(#691]D0),/*>86 M ><0D@"N`$Z&!!D:%;#N*N1,A"\.TBF#68WE\8U*^QQQQ.Q%/4DE07[9Q=C@+87 M "UBI)I!O!^_6<]/A'9?NTMW]')S(X::%*Q9OC.IXA.6-2]P!LZ)3PX*%:<`B88 M QGN3`LC!!/K`&F%IPOK&-;NM!^\`S5CX1(%E.U2'50QGPCV<C1]'/>`880/W89 M 6$A7'53)UN492`!)\`5R0&7@&QN9"!#`24@]J/4AK=O'4<;!'`7L5$_82?X:90 M 3QSU$S@J=?2,LSU^*$87X(F"2_;L\^=G[-E;^!O=P5<0J`?*M_A-+L7.=(HI91 M D."'\GTZ(*$]O"<>A?>^ZB?^!OP&4</;&".)TELJN8C_1J-OX9[:X33S=L=?92 M N7_M\]\,^O:+EE^67\W\.0[X!Q_BGN=!<&,\3W;[LXG'\FG.\BDKYX[L<1F]93 M X!F*`?%RW9#/GU_#`IC!\4WT+:OWR:OX(2LV7:+UK9W1#9%X\6O0QOW4Y.(594 M YAAYJ(AO`.,(+(>S,E:>K-]7$?G:YZIV3>00(?;7X.'8-P?(?7T(]@$Z5"4X95 M ;3:$ZN&G8%5^$R4MQLP34JY56/DM^XW)S:/RZ`Z9+OFV$AP,]5TPCM-WG#\O96 M @KD/4R_9?/HP"R;)'M-)Z>8*'W\P:"P7;?#^/]XMK)#W'OX3(<3.`Y@20&6R97 M 8H3TP_O;H"9D@T3);<'!P\L(*"/9[/+0,FF7M9)_3(3_>V@1XHO0_RS]%_O398 &J=0Y20``11 MZJRI&]-N1'O%3D"!-S<WQ`'-4$9(@@]D`O*3CBBT#6$EC42D1M;>+"!0Y\R/ 12 M[BL_#^;PG0LX3+D2BG^>B'H.735?S*;03T,Y6HR$PY@,&-;X(5C,Y)0(C\CY 13 ME`RNM&LRG('FT(?>Z`3%$#(,E=*RGS8T+JJ)EY^\8B,*?<RV1?6W1>WMO)UB 14 M_X)B8;R./_J>+.5"3C`":4=RM@1D>'OKA2%J`C)&P_F0D7E\YY4(?D`A\CIJ 15 M8S-/2>C-Y6)X'9TF*Z;LAI7TM)^?_@M.98<.KL0U3&$L_<(-B!?-O>D();P) 16 MVJ\#2&()2D<4=H4W>>^-)$)6I#IH?R,'5T8FO!\6A*.\%]B^;-D!:_WAC\=D 17 MD*]$<?9U&CK\DXD&AE.<H14Y@RTJ;'27:V#DK%$'6*3S6#"8D-$"9B:+%VRM 18 M\T5.15I]ESOJV]RAU3;)H_'X/*$SP71FP(]@6O+W$*Z0S:-.!"VD)JS!B'87 19 M]#R&UE)S0;NP.OO(F;!.<7WV("\2T`G46M`>9L*5[`_:65!;D@DP_&Q.;H/) 20 MW6(N:P(=H.*/,\\#8X2(*<P)XJDE@Y,IGT$G)6YWN;#Z#$YZU,%CI\>=<U;J 21 M8#H<G2X55H^5['/:Z:.X:I7TL<NF`=8]'0UG(Y3HA_=IHS]8&RY<T4U5PHL> 22 M%:;(E.-PL:,A(KI*30I%SK]+5R/1-2#!^W`^6]QB-J;@Z(:?O!&>[\Z99(KL 23 M8Z62QM2OD+_9.7Z3`XW"1B_M=%*QCU07%7MHLX,.,25N>*4Q[9K)HU!'71T- 24 M=:RK8^/ZR9C\K8U)(^?M!A19"^E%+#CP]D+P>"']BD7.V^A?YI3=@(:EMFB# 25 MNK>8VY#,[7_T1__()+4*-@N6[Q0&'<22F1Q%T&>*PSTFMXO9$N>#EZ[I$;G? 26 M:!T?0:NF<SE,6'VFOZ@I%W@F2&K.RMK1T8AJE0TW6&AYQS0!.!E&\JJL57(, 27 MF-UT+DU@/*]&V.M^\PH%7C,X$5+R=5Y"/R/JDTCUH97E"1,%H<8.!$>W[#<+ 28 MF#W6L[EM/8W-(=`?WW@"C>#/0PSFH:3S_1;1K-IH:*HVM=\!05M5^UY+\OU6 29 M03O4!J"6F9)*QR<R?R+S;R)S@63^Q9:XX9>:H"91.RJ+RCLP`,!QU:BL5[A9 30 MQ21J5S&II.:8A"7Y"FE48`IG2*&0>H8T,F2]0JT<J2ND@4@]J5H4!.H5:LJK 31 MDIK&$I8*%$J@F<M-!380:20"=07KY#`0N+/N:@RG0?*-0)9=Y4<L22U&K.P: 32 M^J!#@6>*Y;C4SV+;I>Q"*3R53:`F(ZJT+,>DO$*=L@6TPU)T>DSS(1:1M1;U 33 MWZVS($U@Y3@<,JF4U&HK_46JF:PSEY:@TV.Q;FQ+4HZK;+SB)MM!9\?4O&73 34 M%GV*Q(M@,%&SY`T'87`SNAF=@#5'.I[YMT!84UCH8!(Z[[[B$>SW#P3Z!^JS 35 MZ1_HF7^@MS/?8-,ST*5G`,[%E$U.4Q>AE6>C4X"[A>5I6SN=_C(ZG;:GX%UD 36 M^1!0DS\3Q`1S3B>_M$>GD_8$0.1/O]7V6RPJ3W':3BJG?V7EZE`NOVID7@)4 37 M#DT`PWLW]C_$92BMU7)706_NN@HM"'F?36)LY[-[]NM^0,C]#5MS_Q/O`:C" 38 MYE85`UBSZL"9`U0#$32P!K>K+G4QRZEV@<IZO)OD.-RINL`K/>EZ6%#0/<CK 39 M.,QSR#3<4+"H7U&]HG9%Y9[<C2=WXYO<#;UUC[M1<"RD]0?#U4T.9K5;<">4 40 MNZ%\`CBXW$T!>@8`B]:3C@C.Z(+CH)P1Z0?HJ1\`LS_W1.H%3T1Y%-1)%>D5 41 M7`;E7$A?01YZ65N/]]HHHU:T4?,5#,9X[-_-P3Z%T!&+\7#FSV-"RG.MW93D 42 MJ>EL+MIZY8LF*Q.MJ8W768-L;KRR)5M5V"BW2(;(8]5C@"Z6?+V2X?L*0_EX 43 MR6((Z%>X.[D4?+&2,3TD"G49Q72]1'`DZ!J#_ERROFL]CK=-1O,G!)HUIK$? 44 M%VXFQZ8ZMM3Q^#$,B653Q^4VF(J.S1TT)AV76UW:%8^Q"?L#-C:_/9;-FIJT 45 M=*.A/]#(?''PGHS/W]CX&,9#C8]D0]Y9<SNF3D2[2]IQ,N,C29)W8FHN5M1: 46 M<&=)W17>S+$%%6873@4U;8=VS-P>24JEYGJ%MW?LB#L+ZL*U'7/367$+O#"H 47 MP^EF)DJ2+^]$U%YR9TV[H(;(#9/B9&H"QEP):D7<6G$[N;$+2?:28OU=D!IG 48 MIDH2.+5!7]#<7I74$FBGE(Z20`P(2`J7U-IHIU2_T="DG26U;MJI%:"="/5U 49 M%Z"$X"8@TKZO[S>&C31V:NY8K(V;A48SLU?G:$"B6-TI1*,D;Q:"R5HOV'K) 50 M%LN\5&O'%IUK.[<,ZYO&2-1^>`!S>#@CVTO/L<G4P5;3#C:<]M?T,L;;A.Z" 51 MOH03F%1+^@IZ<($#=;&&#J'6D@Z@1V'PE[2W>(P[AT#;=I=:%QCG6-3J4_,2 52 M3R'5I>9+-%@F/9<W[2#WG)]C;@=R(9J0N3WJ]&CG%9;I4;?'73RU>K0+8<<` 53 M3EVP`7WJ8C''320YD*0D.1?T_((FD@;T?)!(<B]H_X+W,=4<T/Z`]S&U=\'M 54 M`;U`H1>7O/N27B)@<,FM5_12`EYR^Q5]^>I'Q5Q]99GZRC+UE6527=17AJFO 55 M#%-?&::^,DS]9($E1ZUVS8"/59\D2:E(34]/C/0D%:NE<K54L-:2@I+S5+JH 56 M71]J=J.8@R+?:73SF?ED??_.UO?XP:$?SJH\UD/:H^>7>6R'#`C+/X_GD`R! 57 M!#(#F?)B;OL4/^9&3_%D9N12OLPL6LJ;2JL:.@5JFJH&U6M[35I=.\NV*>LB 58 M#<A:J7E;X?;@<67#N-7UW+CI`%N56[@1O2HW*M55^;C",J"1;T+B9U5N(J)5 59 M`6Q]&UO?QM8SK+Z-;6QCC0PKMK'-71VDLL8VL+4-E,UI[E7@>*^RS7T*-&I[ 60 ME958;1NK;6/U3;FM`E9L8\6FW")6WZMO(VM;$;LS:$:&W=%ASZ#)SE5JY\#] 61 M(U;/A!:Q.R.F;V(;!>S.H(D,JVUC=P;-2)35MA1H[HR85,#(%*@7L#LC)C*L 62 MMHW=,V*Y`GH!N#-<JMWY@G@G-F=.<V?4M,TB(JECJ]3.^*F*U"#*6@KCW=P9 63 M1JV`SZMHY;OS3?"$E4M+4I]6W_%I?_B6_,_<4T%?):7A)$U+A6JI5"T5JZ5R 64 MM52PEDI&_R<3E8I'_\=5_H\ZR31.A8M4N#`>8X.'=]Z)[]IYJ1VZSU)C6*<, 65 M-[BHRM/_T1;+_]=8/GF<?V./L]DZ>YC#N>UO9;[G'O^*=@H0'2$[;I6$M/(' 66 M%?9X4Q+2S.\U;#M1F>>ZQVFBL(`+%30S'8K>4N;8[O&.,A]WCS?$.]+$YE[O 67 M'B](8M(G+#0MJ[_H_<@&-E*,R/0H>CUTHR[5ET5OIY220'N/>U-*B:&]QY_A 68 M21^E#W=HC:PA14]&H=)[/EHSJ:CHPY12@FGO<5I**>FT]W@II92(VMMN22EE 69 MIO:7_1#5-S*3IHTIC+J07?H5EX0F@U04(#8$Z(7J-[T3JN?UI4,HC$)].\Z) 70 M*J&D9>OO^&Q/?-2JJ=19C<TT-A-LIK-9@\V:;-9B$S9EHQPKW[9Z[$\F/8W. 71 M"'D=9)N/&Y%9"R*S)#`CYP@)YZ-R],Z@\3L]]\A:QEG*NI=!GEI'W=O%#YG] 72 M0<`[>]`G$P,>(A#W8NR1/TC[*KIF5W'^<&@+G$&5.RG7*NT_\IQ6(4>K0$D6 73 M0UGYBH5>$'!<@`F$Z3DNAQW7"C`=82*'B0).*^`,P,4L8C4$1NA]<"R#!\:+ 74 MPL7>GA(']M2Q?I3774<=H9I$OT11#FWCD50;SB(1L[BHNE%0O9$6!_U5`V)4 75 M&B[PU;:D15'B3R5MP@[9Z#$8?GSBQW^>)S54DM]NY(DP@O+!'O]YVSCUG__B 76 M^_#=]I\7GO\YAJ#LS^Q"1EV707L"1;))J-5DW*0"`VC'C8H-+@-V'A1@,A)" 77 MJ_@&K6+>?JTF0Y?$DE^&A1+-/'U03#_.T_N%=$TJHM;]FRA/AYK_0@.^Q+BD 78 M[$3S=Z*2QB9YFE;9BE<@,0E8X$1ZS3+AOI#EA%3E*SKR99W=4$5Z#2'>`(VI 79 M22T85$&=F+HPO!V&#ZE1F[JLDSZT1CC`<.>9)>?J:3X.,)+'`Q``X.V#^Q\4 80 M$A1WS045'9MV7+E=SD7'VI:D'RJ)"ULX7)B.X!;\.:[(9-,.)$"VRPW3`:"% 81 M7[8KN*NSDJ7SCG`8B'-!G@L"793H@DBQK93Q<Y6BMD&%*258\$U-@45,E"0L 82 M>0XR0&L0"^)1]KY&2!U<J82+6KB@AK[=LOK_=\LHUJ9#$<>@%OPY^L&M3>/- 83 M0K1:JA\<?-99R9"_NGR-22=)$)5SSF&!E/AJ('4)88Q:U,F0J'05(B2!$U24 84 M,/=.%#2`XF/_`^YAI,'0W@#KJ\':_D#MH6%4RK-9]/$F"Z,N\]AIL!E1E4J_ 85 M7X:_EWX?X%<?OGX>;QJL+E]PU)GQ-=[$5XLCX$R.G!GC/6A!W5@]E:Q3,^86 86 M0&PPB[(G2H"1]\PC)@%<`9P(#30P*F3;4<R="%D8IE4$LQ[+XQN3\CWFB-N) 87 M>))*@OJRC;/#65C`2C6!?#MXMYZ;#N^X=)?N[N?@1`XW+5RQ>&-4QR,L;USB 88 M#I@5G1H6+$P#%C'>FQ1`#B;0!]8(2Q/6-Z[9;3UX!VC&PB<*+-NA.JQB.!/N 89 MX6S\..H!QP@;N,="NNJ@2K8NST`"2((OD`,J`]_8R$2``$Y"ZD&M#VG=/HXR 90 M#N8H8*=ZPD[RUWCBJ)_`4:FC9YSM\4,QN@!/%%RR9Y\_/V//WL+?Z`Z^@D`] 91 M4+[%;W(I=J933($$/Y3OTP$)[>$]\2B\]U4_\3?@-X@:WL88293>4LE%_#<: 92 M?0OWU`ZGF;<[_LK]:Y__9M"W7[3\LOQJYL]QP#_X$/<\#X(;XWFRVY]-/)9/ 93 M<Y9/63EW9(_+Z`7/4`R(E^N&?/[\&A;`#(YOHF]9O4]>Q0]9L>D2K6_MC&Z( 94 MQ(M?@S;NIR87KS#'R$-%?`,81V`YG)6Q\F3]OHK(USY7M6LBAPBQOP8/Q[XY 95 M0.[K0[`/T*$JP6FS(50//P6K\ILH:3%FGI!RK<+*;]EO3&X>E4=WR'3)MY7@ 96 M8*CO@G&<ON/\>1',?9AZR>;3AUDP2?:83DHW5_CX@T%CN6B#]__Q;F&%O/?P 97 MOPHA=A[`E``JDQ4CI!_>WP8U(1LD2FX+#AY>1D`9R6:7AY9)NZR5_*<B_&=$ 98 0BQ!?A/YGZ;^@U#P02DD````` 99 99 ` 100 100 end -
Tst/Manual/fwalk.res.gz.uu
r2675bd r5638b9 1 begin 64 4fwalk.res.gz2 M'XL(" $(-$%(``V9W86QK+G)E<P!%4DUKPS`,O?=7B+)#BI,22[:34)K#V"4P3 M =NENHY2,=24LE-%FU,JOGYR/]A#IZ3V]6'*R>W^IW@!`E_!:/<.RNW;KMOE<4 M ;D#0H3DW7;3:+$*&LH3O6]W^K,_'V_K:U=UB-YEQ,I\N@S[X[R*5<&G.)[C`5 M %@C3E.*HCSGVJQC:WT>;*:'Y.M8M5-+'I#SWBK%7OJ<80JD\<F`>%CL-%%4R6 M XN%#[[<)%XHSCR$H=IY"0$7LY+%"D<\$D7=#M($PJF`4J'-)8T$*,YXB2O3R7 M =MQO>Z]R+#+.A9R`(FL=9\E0.K%K:](BG#Q3.`(;3A@TZ\U,T6BW8<01C-G,8 M BA&[3IW+V4R9_&A&7R1:YU9`KK1!-(*RF7)SDTV"1APD\3L6:0)WR2B9+:SN9 D2?8DV9/E`L,ERCCWRW;E\$>$[_YWC?1J\[3X!WVL<P$\`@``1 begin 640 fwalk.res.gz 2 M'XL("!0%6E4``V9W86QK+G)E<P!%4L%JPS`,O?<K1-DAQ4F))=M)*,UA[%(8 3 MNW2W44K'NA(6RF@S:N7K)R=.>[#T])Z>;27>OK]LW@!`U_"Z>89Y=^V6;?,Y 4 M7X&@?7-NNF2QFH4,=0W?MT/[LSP?;\MK=^AFVVC&:#Y=!GWPWT6JX=*<3W"! 5 M-1#F.:5)GW+J%RFTOX\V4T/S=3RTL)$^)N6Y5XR]\CVE$$KED0/SL-AXH60C 6 M5]Q_Z-V:JXP+CR%D[#R%@!FQDV6%(E\((N^&:`-ALHI1H"XEC05E6'",*-'+ 7 MYKA;]UZ56!5<>IR`(FL=%]E0.F^4MB:OAI,CA2.PWD;-RB&1HM%N9;\(QFPF 8 MQ8A=Y\Z5;&(F/YK15YG6I150*FT0C:!BHMS4)&.)1APD\3L6*8*[9)3<#4,B 9 BF9-D3D8E@\M2=/_6KAX>1/CM?]=$+U9/LW]-@V&+.P(````` 10 10 ` 11 11 end -
Tst/Short/absfact.res.gz.uu
r2675bd r5638b9 1 1 begin 640 absfact.res.gz 2 M'XL(" .:W8%0``V%B<V9A8W0N<F5S`.V<6V_CN!7'W_,IB,$"*UE20A[>Q`WL2 M'XL("/C:654``V%B<V9A8W0N<F5S`.V<6V_CN!7'W_,IB,$"*UE20A[>Q`WL 3 3 MAVW18H&B#Y.\+28#.;%WC*9)$&L:*9^^A[Z(=$1)=KHS#QUE,([$FR6=__GI 4 4 MD#K*U?5??_LG(83-R#]^^Y5\*-?E^?UJ_N'R[&I7`S."A9]7#ZLRBB_/[&\R -
Tst/Short/absfact.stat
r2675bd r5638b9 1 1 >> tst_memory_0 :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:3114682 1 >> tst_memory_1 :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:24207363 1 >> tst_memory_2 :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:24272604 1 >> tst_timer :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:375 2 >> tst_memory_0 :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:3174606 2 >> tst_memory_1 :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:24207367 2 >> tst_memory_2 :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:24272608 2 >> tst_timer :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:969 3 >> tst_memory_0 :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:31746010 3 >> tst_memory_1 :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:242073611 3 >> tst_memory_2 :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:242726012 3 >> tst_timer :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:113 4 >> tst_memory_0 :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:31969214 4 >> tst_memory_1 :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:242073615 4 >> tst_memory_2 :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:242726016 4 >> tst_timer :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:2217 5 >> tst_memory_0 :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:31958418 5 >> tst_memory_1 :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:242073619 5 >> tst_memory_2 :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:242726020 5 >> tst_timer_1 :: 1 389793926:3170:3-1-7:ix86-Linux:mamawutz:1591 1 >> tst_memory_0 :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:170680 2 1 >> tst_memory_1 :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:2461696 3 1 >> tst_memory_2 :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:2461696 4 1 >> tst_timer :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:12 5 2 >> tst_memory_0 :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:181336 6 2 >> tst_memory_1 :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:2461696 7 2 >> tst_memory_2 :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:2461696 8 2 >> tst_timer :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:48 9 3 >> tst_memory_0 :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:181336 10 3 >> tst_memory_1 :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:2461696 11 3 >> tst_memory_2 :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:2461696 12 3 >> tst_timer :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:1 13 4 >> tst_memory_0 :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:188168 14 4 >> tst_memory_1 :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:2461696 15 4 >> tst_memory_2 :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:2461696 16 4 >> tst_timer :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:7 17 5 >> tst_memory_0 :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:189200 18 5 >> tst_memory_1 :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:2547712 19 5 >> tst_memory_2 :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:2547712 20 5 >> tst_timer_1 :: 1431939564:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:69 -
doc/NEWS.texi
r2675bd r5638b9 24 24 @itemize 25 25 @item renamed algemodstd_lib to @nref{nfmodstd_lib} 26 @item renamed derham_lib to @nref{deRham lib}26 @item renamed derham_lib to @nref{deRham_lib} 27 27 @item new library: graal_lib 28 28 @item new library: deflation.lib -
doc/changes_in_singular4.texi
r2675bd r5638b9 102 102 dynamic module @code{syzextra.so}, not available in Singular 3. 103 103 It implements the low-level functions for Schreyer resolutions and many auxiliary functions. 104 The following new libraries @ref{de rham_lib}, @ref{schreyer_lib} depend on it:105 106 @c table @asis 107 @itemize @bullet 108 @item @ref{de rham_lib} - computes de Rham cohomology104 The following new libraries @ref{deRham_lib}, @ref{schreyer_lib} depend on it: 105 106 @c table @asis 107 @itemize @bullet 108 @item @ref{deRham_lib} - computes de Rham cohomology 109 109 @item @ref{schreyer_lib} - computes Schreyer resolution via several approaches. It also serves as a high-level wrapper to the dynamic module @code{syzextra.so} 110 110 @end itemize -
libpolys/coeffs/OPAE.cc
r2675bd r5638b9 41 41 number nAEImPart (number a, number b, const coeffs r); // nachgicken 42 42 43 void nAEWriteLong (number &a, const coeffs r);//44 void nAEWriteShort (number &a, const coeffs r);//43 void nAEWriteLong (number a, const coeffs r);// 44 void nAEWriteShort (number a, const coeffs r);// 45 45 46 46 … … 192 192 } 193 193 194 void nAEWriteLong (number &a, const coeffs)194 void nAEWriteLong (number a, const coeffs) 195 195 { 196 196 int_poly* f=reinterpret_cast <int_poly*>(a); … … 199 199 } 200 200 201 void nAEWriteShort (number &a, const coeffs)201 void nAEWriteShort (number a, const coeffs) 202 202 { 203 203 int_poly* f=reinterpret_cast <int_poly*>(a); -
libpolys/coeffs/OPAEQ.cc
r2675bd r5638b9 41 41 number nAEQImPart (number a, number b, const coeffs r); // nachgicken 42 42 43 void nAEQWriteLong (number &a, const coeffs r);//44 void nAEQWriteShort (number &a, const coeffs r);//43 void nAEQWriteLong (number a, const coeffs r);// 44 void nAEQWriteShort (number a, const coeffs r);// 45 45 46 46 … … 187 187 } 188 188 189 void nAEQWriteLong (number &, const coeffs)189 void nAEQWriteLong (number , const coeffs) 190 190 { 191 191 return; 192 192 } 193 193 194 void nAEQWriteShort (number &, const coeffs)194 void nAEQWriteShort (number , const coeffs) 195 195 { 196 196 return ; -
libpolys/coeffs/OPAEp.cc
r2675bd r5638b9 195 195 } 196 196 197 void nAEpWriteLong (number &a, const coeffs)197 void nAEpWriteLong (number a, const coeffs) 198 198 { 199 199 p_poly* f=reinterpret_cast <p_poly*>(a); … … 203 203 } 204 204 205 void nAEpWriteShort (number &a, const coeffs)205 void nAEpWriteShort (number a, const coeffs) 206 206 { 207 207 p_poly* f=reinterpret_cast <p_poly*>(a); -
libpolys/coeffs/coeffs.h
r2675bd r5638b9 201 201 202 202 /// print a given number (long format) 203 void (*cfWriteLong)(number &a, const coeffs r);203 void (*cfWriteLong)(number a, const coeffs r); 204 204 205 205 /// print a given number in a shorter way, if possible 206 206 /// e.g. in K(a): a2 instead of a^2 207 void (*cfWriteShort)(number &a, const coeffs r);207 void (*cfWriteShort)(number a, const coeffs r); 208 208 209 209 // it is legal, but not always useful to have cfRead(s, a, r) -
libpolys/coeffs/ffields.cc
r2675bd r5638b9 424 424 * write via StringAppend 425 425 */ 426 static void nfWriteLong (number &a, const coeffs r)426 static void nfWriteLong (number a, const coeffs r) 427 427 { 428 428 #ifdef LDEBUG … … 446 446 * write (shortert output) via StringAppend 447 447 */ 448 static void nfWriteShort (number &a, const coeffs r)448 static void nfWriteShort (number a, const coeffs r) 449 449 { 450 450 #ifdef LDEBUG -
libpolys/coeffs/gnumpc.cc
r2675bd r5638b9 53 53 number ngc_Copy(number a, coeffs r); 54 54 const char * ngcRead (const char *s, number *a, const coeffs r); 55 void ngcWrite(number &a, const coeffs r);55 void ngcWrite(number a, const coeffs r); 56 56 number ngcRePart(number a, const coeffs r); 57 57 number ngcImPart(number a, const coeffs r); … … 403 403 * write a floating point number 404 404 */ 405 void ngcWrite (number &a, const coeffs r)405 void ngcWrite (number a, const coeffs r) 406 406 { 407 407 assume( getCoeffType(r) == ID ); -
libpolys/coeffs/gnumpfl.cc
r2675bd r5638b9 51 51 number ngfCopy(number a, const coeffs r); 52 52 number ngf_Copy(number a, coeffs r); 53 void ngfWrite(number &a, const coeffs r);53 void ngfWrite(number a, const coeffs r); 54 54 void ngfCoeffWrite(const coeffs r, BOOLEAN details); 55 55 … … 398 398 * write a floating point number 399 399 */ 400 void ngfWrite (number &a, const coeffs r)400 void ngfWrite (number a, const coeffs r) 401 401 { 402 402 assume( getCoeffType(r) == ID ); -
libpolys/coeffs/longrat.cc
r2675bd r5638b9 69 69 void nlPower(number x, int exp, number *lu, const coeffs r); 70 70 const char * nlRead (const char *s, number *a, const coeffs r); 71 void nlWrite(number &a, const coeffs r);71 void nlWrite(number a, const coeffs r); 72 72 73 73 number nlGetDenom(number &n, const coeffs r); -
libpolys/coeffs/longrat0.cc
r2675bd r5638b9 115 115 * write a rational number 116 116 */ 117 void nlWrite (number &a, const coeffs r)117 void nlWrite (number a, const coeffs r) 118 118 { 119 119 char *s,*z; -
libpolys/coeffs/modulop.cc
r2675bd r5638b9 43 43 BOOLEAN npGreater (number a, number b,const coeffs r); 44 44 BOOLEAN npEqual (number a, number b,const coeffs r); 45 void npWrite (number &a, const coeffs r);45 void npWrite (number a, const coeffs r); 46 46 void npCoeffWrite (const coeffs r, BOOLEAN details); 47 47 const char * npRead (const char *s, number *a,const coeffs r); … … 348 348 } 349 349 350 void npWrite (number &a, const coeffs r)350 void npWrite (number a, const coeffs r) 351 351 { 352 352 n_Test(a, r); -
libpolys/coeffs/rintegers.cc
r2675bd r5638b9 60 60 number nrzExtGcd (number a, number b, number *s, number *t, const coeffs r); 61 61 nMapFunc nrzSetMap (const coeffs src, const coeffs dst); 62 void nrzWrite (number &a, const coeffs r);62 void nrzWrite (number a, const coeffs r); 63 63 const char * nrzRead (const char *s, number *a, const coeffs r); 64 64 char * nrzName (number n, const coeffs r); … … 378 378 #endif 379 379 380 void nrzWrite (number &a, const coeffs)380 void nrzWrite (number a, const coeffs) 381 381 { 382 382 char *s,*z; -
libpolys/coeffs/rintegers.h
r2675bd r5638b9 27 27 28 28 // will be reused by rmodulon.cc 29 void nrzWrite (number &a, const coeffs r);29 void nrzWrite (number a, const coeffs r); 30 30 31 31 #endif -
libpolys/coeffs/rmodulo2m.cc
r2675bd r5638b9 54 54 number nr2mExtGcd (number a, number b, number *s, number *t, const coeffs r); 55 55 nMapFunc nr2mSetMap (const coeffs src, const coeffs dst); 56 void nr2mWrite (number &a, const coeffs r);56 void nr2mWrite (number a, const coeffs r); 57 57 const char * nr2mRead (const char *s, number *a, const coeffs r); 58 58 char * nr2mName (number n, const coeffs r); … … 826 826 #endif 827 827 828 void nr2mWrite (number &a, const coeffs r)828 void nr2mWrite (number a, const coeffs r) 829 829 { 830 830 long i = nr2mInt(a, r); -
libpolys/coeffs/shortfl.cc
r2675bd r5638b9 44 44 BOOLEAN nrGreater (number a, number b, const coeffs r); 45 45 BOOLEAN nrEqual (number a, number b, const coeffs r); 46 void nrWrite (number &a, const coeffs r);46 void nrWrite (number a, const coeffs r); 47 47 const char * nrRead (const char *s, number *a, const coeffs r); 48 48 … … 280 280 } 281 281 282 void nrWrite (number &a, const coeffs r)282 void nrWrite (number a, const coeffs r) 283 283 { 284 284 assume( getCoeffType(r) == ID ); -
libpolys/polys/ext_fields/algext.cc
r2675bd r5638b9 97 97 void naPower(number a, int exp, number *b, const coeffs cf); 98 98 number naCopy(number a, const coeffs cf); 99 void naWriteLong(number &a, const coeffs cf);100 void naWriteShort(number &a, const coeffs cf);99 void naWriteLong(number a, const coeffs cf); 100 void naWriteShort(number a, const coeffs cf); 101 101 number naGetDenom(number &a, const coeffs cf); 102 102 number naGetNumerator(number &a, const coeffs cf); … … 582 582 } 583 583 584 void naWriteLong(number &a, const coeffs cf)584 void naWriteLong(number a, const coeffs cf) 585 585 { 586 586 naTest(a); … … 600 600 } 601 601 602 void naWriteShort(number &a, const coeffs cf)602 void naWriteShort(number a, const coeffs cf) 603 603 { 604 604 naTest(a); -
libpolys/polys/ext_fields/transext.cc
r2675bd r5638b9 21 21 * certain threshold (see constant in the *.h file), then the 22 22 * cancellation heuristic will call 'factory' to compute the gcd 23 * and cancel it out in the given number. (This definite cancel- 24 * lation will also be performed at the beginning of ntWrite, 25 * ensuring that any output is free of common factors. 23 * and cancel it out in the given number. 26 24 * For the special case of K = Q (i.e., when computing over the 27 25 * rationals), this definite cancellation procedure will also take … … 113 111 void ntPower(number a, int exp, number *b, const coeffs cf); 114 112 number ntCopy(number a, const coeffs cf); 115 void ntWriteLong(number &a, const coeffs cf);116 void ntWriteShort(number &a, const coeffs cf);113 void ntWriteLong(number a, const coeffs cf); 114 void ntWriteShort(number a, const coeffs cf); 117 115 number ntRePart(number a, const coeffs cf); 118 116 number ntImPart(number a, const coeffs cf); … … 1391 1389 } 1392 1390 1393 // NOTE: modifies a 1394 void ntWriteLong(number &a, const coeffs cf) 1395 { 1396 ntTest(a); 1397 definiteGcdCancellation(a, cf, FALSE); 1391 void ntWriteLong(number a, const coeffs cf) 1392 { 1393 ntTest(a); 1398 1394 if (IS0(a)) 1399 1395 StringAppendS("0"); … … 1418 1414 } 1419 1415 1420 // NOTE: modifies a 1421 void ntWriteShort(number &a, const coeffs cf) 1422 { 1423 ntTest(a); 1424 definiteGcdCancellation(a, cf, FALSE); 1416 void ntWriteShort(number a, const coeffs cf) 1417 { 1418 ntTest(a); 1425 1419 if (IS0(a)) 1426 1420 StringAppendS("0"); -
libpolys/polys/matpol.cc
r2675bd r5638b9 48 48 matrix mpNew(int r, int c) 49 49 { 50 if (r<=0) r=1; 51 if ( (((int)(MAX_INT_VAL/sizeof(poly))) / r) <= c) 50 int rr=r; 51 if (rr<=0) rr=1; 52 if ( (((int)(MAX_INT_VAL/sizeof(poly))) / rr) <= c) 52 53 { 53 54 Werror("internal error: creating matrix[%d][%d]",r,c); … … 58 59 rc->ncols = c; 59 60 rc->rank = r; 60 if ( c != 0)61 if ((c != 0)&&(r!=0)) 61 62 { 62 63 int s=r*c*sizeof(poly); -
libpolys/polys/monomials/ring.cc
r2675bd r5638b9 4222 4222 Print("%ld ",p->exp[i]); 4223 4223 PrintLn(); 4224 Print("v0:% d ",p_GetComp(p, r));4224 Print("v0:%ld ",p_GetComp(p, r)); 4225 4225 for(i=1;i<=r->N;i++) Print(" v%d:%ld",i,p_GetExp(p,i, r)); 4226 4226 PrintLn(); -
libpolys/polys/polys0.cc
r2675bd r5638b9 143 143 return; 144 144 } 145 p_Normalize(p,lmRing); 145 146 if ((p_GetComp(p, lmRing) == 0) || (!lmRing->VectorOut)) 146 147 { -
libpolys/polys/templates/p_Add_q__T.cc
r2675bd r5638b9 43 43 n2 = pGetCoeff(q); 44 44 #if 0 45 t = n_Add__T(n1,n2, r );46 n_Delete__T(&n1, r );45 t = n_Add__T(n1,n2, r->cf); 46 n_Delete__T(&n1, r->cf); 47 47 #else 48 n_InpAdd__T(n1,n2,r );48 n_InpAdd__T(n1,n2,r->cf); 49 49 t = n1; 50 50 #endif 51 n_Delete__T(&n2, r );51 n_Delete__T(&n2, r->cf); 52 52 q = p_LmFreeAndNext(q, r); 53 53 54 if (n_IsZero__T(t, r ))54 if (n_IsZero__T(t, r->cf)) 55 55 { 56 56 shorter += 2; 57 n_Delete__T(&t, r );57 n_Delete__T(&t, r->cf); 58 58 p = p_LmFreeAndNext(p, r); 59 59 } -
libpolys/polys/templates/p_Copy__T.cc
r2675bd r5638b9 24 24 p_AllocBin(pNext(d_p), bin, r); 25 25 pIter(d_p); 26 pSetCoeff0(d_p, n_Copy__T(pGetCoeff(s_p), r ));26 pSetCoeff0(d_p, n_Copy__T(pGetCoeff(s_p), r->cf)); 27 27 // it is better to iter here, 28 28 // for MemCopy advances goes from low to high addresses -
libpolys/polys/templates/p_Delete__T.cc
r2675bd r5638b9 15 15 while (p != NULL) 16 16 { 17 n_Delete__T(&(p->coef), r );17 n_Delete__T(&(p->coef), r->cf); 18 18 p = p_LmFreeAndNext(p, r); 19 19 } -
libpolys/polys/templates/p_Minus_mm_Mult_qq__T.cc
r2675bd r5638b9 37 37 38 38 number tm = pGetCoeff(m), // coefficient of m 39 tneg = n_Neg__T(n_Copy__T(tm, r ), r), // - (coefficient of m)39 tneg = n_Neg__T(n_Copy__T(tm, r->cf), r->cf), // - (coefficient of m) 40 40 tb, // used for tm*coeff(a1) 41 41 tc; // used as intermediate number … … 64 64 65 65 Equal: // qm equals p 66 tb = n_Mult__T(pGetCoeff(q), tm, r );66 tb = n_Mult__T(pGetCoeff(q), tm, r->cf); 67 67 #ifdef HAVE_ZERODIVISORS 68 if (!n_IsZero__T(tb,r )) {68 if (!n_IsZero__T(tb,r->cf)) { 69 69 #endif 70 70 tc = pGetCoeff(p); 71 if (!n_Equal__T(tc, tb, r ))71 if (!n_Equal__T(tc, tb, r->cf)) 72 72 { 73 73 shorter++; 74 tc = n_Sub__T(tc, tb, r );75 n_Delete__T(&(pGetCoeff(p)), r );74 tc = n_Sub__T(tc, tb, r->cf); 75 n_Delete__T(&(pGetCoeff(p)), r->cf); 76 76 pSetCoeff0(p,tc); // adjust coeff of p 77 77 a = pNext(a) = p; // append p to result and advance p … … 81 81 { // coeffs are equal, so their difference is 0: 82 82 shorter += 2; 83 n_Delete__T(&tc, r );83 n_Delete__T(&tc, r->cf); 84 84 p = p_LmFreeAndNext(p, r); 85 85 } … … 91 91 } 92 92 #endif 93 n_Delete__T(&tb, r );93 n_Delete__T(&tb, r->cf); 94 94 pIter(q); 95 95 if (q == NULL || p == NULL) goto Finish; // are we done ? … … 100 100 Greater: 101 101 #ifdef HAVE_ZERODIVISORS 102 tb = n_Mult__T(pGetCoeff(q), tneg, r );103 if (!n_IsZero__T(tb,r ))102 tb = n_Mult__T(pGetCoeff(q), tneg, r->cf); 103 if (!n_IsZero__T(tb,r->cf)) 104 104 { 105 105 #endif 106 pSetCoeff0(qm, n_Mult__T(pGetCoeff(q), tneg, r ));106 pSetCoeff0(qm, n_Mult__T(pGetCoeff(q), tneg, r->cf)); 107 107 a = pNext(a) = qm; // append qm to result and advance q 108 108 #ifdef HAVE_ZERODIVISORS … … 112 112 shorter++; 113 113 } 114 n_Delete__T(&tb, r );114 n_Delete__T(&tb, r->cf); 115 115 #endif 116 116 pIter(q); … … 157 157 } 158 158 159 n_Delete__T(&tneg, r );159 n_Delete__T(&tneg, r->cf); 160 160 if (qm != NULL) p_FreeBinAddr(qm, r); 161 161 Shorter = shorter; -
libpolys/polys/templates/p_Mult_mm__T.cc
r2675bd r5638b9 27 27 DECLARE_LENGTH(const unsigned long length = ri->ExpL_Size); 28 28 const unsigned long* m_e = m->exp; 29 pAssume(!n_IsZero__T(ln,ri ));29 pAssume(!n_IsZero__T(ln,ri->cf)); 30 30 31 31 #ifdef HAVE_ZERODIVISORS … … 35 35 { 36 36 pn = pGetCoeff(p); 37 number tmp = n_Mult__T(ln, pn, ri );37 number tmp = n_Mult__T(ln, pn, ri->cf); 38 38 #ifdef HAVE_ZERODIVISORS 39 if (n_IsZero__T(tmp, ri ))39 if (n_IsZero__T(tmp, ri->cf)) 40 40 { 41 n_Delete__T(&tmp, ri );41 n_Delete__T(&tmp, ri->cf); 42 42 if (before == p) 43 43 { … … 56 56 { 57 57 pSetCoeff0(p, tmp); 58 n_Delete__T(&pn, ri );58 n_Delete__T(&pn, ri->cf); 59 59 p_MemAdd__T(p->exp, m_e, length); 60 60 p_MemAddAdjust__T(p, ri); -
libpolys/polys/templates/p_Mult_nn__T.cc
r2675bd r5638b9 18 18 LINKAGE poly p_Mult_nn__T(poly p, const number n, const ring r) 19 19 { 20 pAssume(!n_IsZero__T(n,r ));20 pAssume(!n_IsZero__T(n,r->cf)); 21 21 p_Test(p, r); 22 22 … … 28 28 { 29 29 #ifndef HAVE_ZERODIVISORS 30 n_InpMult__T(pGetCoeff(p), n, r );30 n_InpMult__T(pGetCoeff(p), n, r->cf); 31 31 pIter(p); 32 32 #else 33 number tmp = n_Mult__T(n, pGetCoeff(p), r );34 if (!n_IsZero__T(tmp,r ))33 number tmp = n_Mult__T(n, pGetCoeff(p), r->cf); 34 if (!n_IsZero__T(tmp,r->cf)) 35 35 { 36 36 number nc = pGetCoeff(p); 37 37 p_SetCoeff0(p, tmp, r); 38 n_Delete__T(&nc, r );38 n_Delete__T(&nc, r->cf); 39 39 old = p; 40 40 pIter(p); … … 42 42 else 43 43 { 44 n_Delete__T(&tmp, r );44 n_Delete__T(&tmp, r->cf); 45 45 if (old == NULL) 46 46 { -
libpolys/polys/templates/p_Neg__T.cc
r2675bd r5638b9 20 20 while (p != NULL) 21 21 { 22 pSetCoeff0(p, n_Neg__T(pGetCoeff(p), r ));22 pSetCoeff0(p, n_Neg__T(pGetCoeff(p), r->cf)); 23 23 pIter(p); 24 24 } -
libpolys/polys/templates/p_Numbers.h
r2675bd r5638b9 16 16 #include <polys/monomials/ring.h> 17 17 18 static FORCE_INLINE number n_Copy_FieldGeneral(number n, const ringr)19 { return n_Copy(n,r ->cf); }18 static FORCE_INLINE number n_Copy_FieldGeneral(number n, const coeffs r) 19 { return n_Copy(n,r); } 20 20 21 static FORCE_INLINE void n_Delete_FieldGeneral(number* p, const ringr)22 { n_Delete(p,r ->cf); }21 static FORCE_INLINE void n_Delete_FieldGeneral(number* p, const coeffs r) 22 { n_Delete(p,r); } 23 23 24 static FORCE_INLINE number n_Mult_FieldGeneral(number n1, number n2, const ringr)25 { return n_Mult(n1, n2, r ->cf); }24 static FORCE_INLINE number n_Mult_FieldGeneral(number n1, number n2, const coeffs r) 25 { return n_Mult(n1, n2, r); } 26 26 27 static FORCE_INLINE number n_Add_FieldGeneral(number n1, number n2, const ringr)28 { return n_Add(n1, n2, r ->cf); }27 static FORCE_INLINE number n_Add_FieldGeneral(number n1, number n2, const coeffs r) 28 { return n_Add(n1, n2, r); } 29 29 30 static FORCE_INLINE BOOLEAN n_IsZero_FieldGeneral(number n, const ringr)31 { return n_IsZero(n, r ->cf); }30 static FORCE_INLINE BOOLEAN n_IsZero_FieldGeneral(number n, const coeffs r) 31 { return n_IsZero(n, r); } 32 32 33 static FORCE_INLINE BOOLEAN n_Equal_FieldGeneral(number n1, number n2, const ringr)34 { return n_Equal(n1, n2, r ->cf); }33 static FORCE_INLINE BOOLEAN n_Equal_FieldGeneral(number n1, number n2, const coeffs r) 34 { return n_Equal(n1, n2, r); } 35 35 36 static FORCE_INLINE number n_Neg_FieldGeneral(number n, const ringr)37 { return n_InpNeg(n, r ->cf); }36 static FORCE_INLINE number n_Neg_FieldGeneral(number n, const coeffs r) 37 { return n_InpNeg(n, r); } 38 38 39 static FORCE_INLINE number n_Sub_FieldGeneral(number n1, number n2, const ringr)40 { return n_Sub(n1, n2, r ->cf); }39 static FORCE_INLINE number n_Sub_FieldGeneral(number n1, number n2, const coeffs r) 40 { return n_Sub(n1, n2, r); } 41 41 42 static FORCE_INLINE void n_InpMult_FieldGeneral(number &n1, number n2, const ringr)43 { n_InpMult(n1, n2, r ->cf); }42 static FORCE_INLINE void n_InpMult_FieldGeneral(number &n1, number n2, const coeffs r) 43 { n_InpMult(n1, n2, r); } 44 44 45 static FORCE_INLINE void n_InpAdd_FieldGeneral(number &n1, number n2, const ringr)46 { n_InpAdd(n1, n2, r ->cf); }45 static FORCE_INLINE void n_InpAdd_FieldGeneral(number &n1, number n2, const coeffs r) 46 { n_InpAdd(n1, n2, r); } 47 47 48 48 #ifdef HAVE_RINGS … … 58 58 #define n_InpMult_RingGeneral(n1, n2, r) n_InpMult_FieldGeneral(n1, n2, r) 59 59 60 static FORCE_INLINE void n_InpAdd_RingGeneral(number &n1, number n2, const ringr)61 { assume( rField_is_Ring(r)); n_InpAdd(n1, n2, r->cf); }60 static FORCE_INLINE void n_InpAdd_RingGeneral(number &n1, number n2, const coeffs r) 61 { assume(nCoeff_is_Ring(r)); n_InpAdd(n1, n2, r); } 62 62 #endif 63 63 … … 67 67 #define n_Delete_FieldZp(n, r) do {} while (0) 68 68 69 static FORCE_INLINE number n_Mult_FieldZp(number n1, number n2, const ringr)70 { STATISTIC(n_Mult); return npMultM(n1, n2, r ->cf); }69 static FORCE_INLINE number n_Mult_FieldZp(number n1, number n2, const coeffs r) 70 { STATISTIC(n_Mult); return npMultM(n1, n2, r); } 71 71 72 72 #ifdef HAVE_NUMSTATS 73 static FORCE_INLINE number n_Add_FieldZp(number n1, number n2, const ringr)74 { STATISTIC(n_Add); const number sum = npAddM(n1, n2, r ->cf);73 static FORCE_INLINE number n_Add_FieldZp(number n1, number n2, const coeffs r) 74 { STATISTIC(n_Add); const number sum = npAddM(n1, n2, r); 75 75 // avoid double counting 76 if( npIsZeroM(sum,r ->cf) ) STATISTIC(n_CancelOut);77 return sum;76 if( npIsZeroM(sum,r) ) STATISTIC(n_CancelOut); 77 return sum; 78 78 } 79 79 #else 80 static FORCE_INLINE number n_Add_FieldZp(number n1, number n2, const ringr)81 { return npAddM(n1, n2, r ->cf); }80 static FORCE_INLINE number n_Add_FieldZp(number n1, number n2, const coeffs r) 81 { return npAddM(n1, n2, r); } 82 82 #endif 83 83 84 84 #ifdef HAVE_NUMSTATS 85 static FORCE_INLINE number n_Sub_FieldZp(number n1, number n2, const ringr)86 { STATISTIC(n_Sub); const number d = npSubM(n1, n2, r ->cf);85 static FORCE_INLINE number n_Sub_FieldZp(number n1, number n2, const coeffs r) 86 { STATISTIC(n_Sub); const number d = npSubM(n1, n2, r); 87 87 // avoid double counting 88 if( npIsZeroM(d,r ->cf) ) STATISTIC(n_CancelOut);88 if( npIsZeroM(d,r) ) STATISTIC(n_CancelOut); 89 89 return d; 90 90 } 91 91 #else 92 static FORCE_INLINE number n_Sub_FieldZp(number n1, number n2, const ringr)93 { return npSubM(n1, n2, r ->cf); }92 static FORCE_INLINE number n_Sub_FieldZp(number n1, number n2, const coeffs r) 93 { return npSubM(n1, n2, r); } 94 94 #endif 95 95 96 static FORCE_INLINE BOOLEAN n_IsZero_FieldZp(number n, const ringr)97 { STATISTIC(n_IsZero); return npIsZeroM(n, r ->cf); }96 static FORCE_INLINE BOOLEAN n_IsZero_FieldZp(number n, const coeffs r) 97 { STATISTIC(n_IsZero); return npIsZeroM(n, r); } 98 98 99 static FORCE_INLINE BOOLEAN n_Equal_FieldZp(number n1, number n2, const ringr)100 { STATISTIC(n_Equal); return npEqualM(n1, n2, r ->cf); }99 static FORCE_INLINE BOOLEAN n_Equal_FieldZp(number n1, number n2, const coeffs r) 100 { STATISTIC(n_Equal); return npEqualM(n1, n2, r); } 101 101 102 static FORCE_INLINE number n_Neg_FieldZp(number n, const ringr)103 { STATISTIC(n_InpNeg); return npNegM(n, r ->cf); }102 static FORCE_INLINE number n_Neg_FieldZp(number n, const coeffs r) 103 { STATISTIC(n_InpNeg); return npNegM(n, r); } 104 104 105 static FORCE_INLINE void n_InpMult_FieldZp(number &n1, number n2, const ringr)106 { STATISTIC(n_InpMult); n1=npMultM(n1, n2, r ->cf); }105 static FORCE_INLINE void n_InpMult_FieldZp(number &n1, number n2, const coeffs r) 106 { STATISTIC(n_InpMult); n1=npMultM(n1, n2, r); } 107 107 108 108 #ifdef HAVE_NUMSTATS 109 static FORCE_INLINE void n_InpAdd_FieldZp(number &n1, number n2, const ringr)109 static FORCE_INLINE void n_InpAdd_FieldZp(number &n1, number n2, const coeffs r) 110 110 { 111 STATISTIC(n_InpAdd); n1=npAddM(n1, n2, r ->cf);111 STATISTIC(n_InpAdd); n1=npAddM(n1, n2, r); 112 112 // avoid double counting 113 if( npIsZeroM(n1,r ->cf) ) STATISTIC(n_CancelOut);113 if( npIsZeroM(n1,r) ) STATISTIC(n_CancelOut); 114 114 } 115 115 #else 116 static FORCE_INLINE void n_InpAdd_FieldZp(number &n1, number n2, const ringr)117 { n1=npAddM(n1, n2, r ->cf); }116 static FORCE_INLINE void n_InpAdd_FieldZp(number &n1, number n2, const coeffs r) 117 { n1=npAddM(n1, n2, r); } 118 118 #endif 119 119 … … 121 121 #include <coeffs/longrat.cc> // for inlining... TODO: fix this Uglyness?!!! 122 122 123 static FORCE_INLINE number n_Copy_FieldQ(number n, const ringr)124 { STATISTIC(n_Copy); return nlCopy(n, r ->cf); }123 static FORCE_INLINE number n_Copy_FieldQ(number n, const coeffs r) 124 { STATISTIC(n_Copy); return nlCopy(n, r); } 125 125 126 static FORCE_INLINE void n_Delete_FieldQ(number* n, const ringr)127 { STATISTIC(n_Delete); nlDelete(n,r ->cf); }126 static FORCE_INLINE void n_Delete_FieldQ(number* n, const coeffs r) 127 { STATISTIC(n_Delete); nlDelete(n,r); } 128 128 129 static FORCE_INLINE number n_Mult_FieldQ(number n1, number n2, const ringr)130 { STATISTIC(n_Mult); return nlMult(n1,n2, r ->cf); }129 static FORCE_INLINE number n_Mult_FieldQ(number n1, number n2, const coeffs r) 130 { STATISTIC(n_Mult); return nlMult(n1,n2, r); } 131 131 132 132 #ifdef HAVE_NUMSTATS 133 static FORCE_INLINE number n_Add_FieldQ(number n1, number n2, const ringr)134 { STATISTIC(n_Add); const number sum = nlAdd(n1, n2, r ->cf);133 static FORCE_INLINE number n_Add_FieldQ(number n1, number n2, const coeffs r) 134 { STATISTIC(n_Add); const number sum = nlAdd(n1, n2, r); 135 135 // avoid double counting 136 if( nlIsZero(sum,r ->cf) ) STATISTIC(n_CancelOut);137 return sum;136 if( nlIsZero(sum,r) ) STATISTIC(n_CancelOut); 137 return sum; 138 138 } 139 139 #else 140 static FORCE_INLINE number n_Add_FieldQ(number n1, number n2, const ringr)141 { return nlAdd(n1, n2, r ->cf); }140 static FORCE_INLINE number n_Add_FieldQ(number n1, number n2, const coeffs r) 141 { return nlAdd(n1, n2, r); } 142 142 #endif 143 143 144 144 #ifdef HAVE_NUMSTATS 145 static FORCE_INLINE number n_Sub_FieldQ(number n1, number n2, const ringr)146 { STATISTIC(n_Sub); const number d = nlSub(n1, n2, r ->cf);145 static FORCE_INLINE number n_Sub_FieldQ(number n1, number n2, const coeffs r) 146 { STATISTIC(n_Sub); const number d = nlSub(n1, n2, r); 147 147 // avoid double counting 148 if( nlIsZero(d,r ->cf) ) STATISTIC(n_CancelOut);148 if( nlIsZero(d,r) ) STATISTIC(n_CancelOut); 149 149 return d; 150 150 } 151 151 #else 152 static FORCE_INLINE number n_Sub_FieldQ(number n1, number n2, const ringr)153 { return nlSub(n1, n2, r ->cf); }152 static FORCE_INLINE number n_Sub_FieldQ(number n1, number n2, const coeffs r) 153 { return nlSub(n1, n2, r); } 154 154 #endif 155 155 156 static FORCE_INLINE BOOLEAN n_IsZero_FieldQ(number n, const ringr)157 { STATISTIC(n_IsZero); return nlIsZero(n, r ->cf); }156 static FORCE_INLINE BOOLEAN n_IsZero_FieldQ(number n, const coeffs r) 157 { STATISTIC(n_IsZero); return nlIsZero(n, r); } 158 158 159 static FORCE_INLINE BOOLEAN n_Equal_FieldQ(number n1, number n2, const ringr)160 { STATISTIC(n_Equal); return nlEqual(n1, n2, r ->cf); }159 static FORCE_INLINE BOOLEAN n_Equal_FieldQ(number n1, number n2, const coeffs r) 160 { STATISTIC(n_Equal); return nlEqual(n1, n2, r); } 161 161 162 static FORCE_INLINE number n_Neg_FieldQ(number n, const ringr)163 { STATISTIC(n_InpNeg); return nlNeg(n, r ->cf); }162 static FORCE_INLINE number n_Neg_FieldQ(number n, const coeffs r) 163 { STATISTIC(n_InpNeg); return nlNeg(n, r); } 164 164 165 static FORCE_INLINE void n_InpMult_FieldQ(number &n1, number n2, const ringr)166 { STATISTIC(n_InpMult); nlInpMult(n1, n2, r ->cf); }165 static FORCE_INLINE void n_InpMult_FieldQ(number &n1, number n2, const coeffs r) 166 { STATISTIC(n_InpMult); nlInpMult(n1, n2, r); } 167 167 168 168 #ifdef HAVE_NUMSTATS 169 static FORCE_INLINE void n_InpAdd_FieldQ(number &n1, number n2, const ring r) 170 { STATISTIC(n_InpAdd); assume(rField_is_Q(r)); nlInpAdd(n1, n2, r->cf); 171 169 static FORCE_INLINE void n_InpAdd_FieldQ(number &n1, number n2, const coeffs r) 170 { STATISTIC(n_InpAdd); assume(nCoeff_is_Q(r)); nlInpAdd(n1, n2, r); 172 171 // avoid double counting 173 if( nlIsZero(n1,r ->cf) ) STATISTIC(n_CancelOut);172 if( nlIsZero(n1,r) ) STATISTIC(n_CancelOut); 174 173 } 175 174 #else 176 static FORCE_INLINE void n_InpAdd_FieldQ(number &n1, number n2, const ringr)177 { nlInpAdd(n1, n2, r ->cf); }175 static FORCE_INLINE void n_InpAdd_FieldQ(number &n1, number n2, const coeffs r) 176 { nlInpAdd(n1, n2, r); } 178 177 #endif 179 178 -
libpolys/polys/templates/p_kBucketSetLm__T.cc
r2675bd r5638b9 55 55 Greater: 56 56 { 57 if (n_IsZero__T(pGetCoeff(p), r ))57 if (n_IsZero__T(pGetCoeff(p), r->cf)) 58 58 { 59 n_Delete__T(&pGetCoeff(p), r );59 n_Delete__T(&pGetCoeff(p), r->cf); 60 60 pIter(bucket->buckets[j]); 61 61 p_FreeBinAddr(p, r); … … 71 71 number tn = pGetCoeff(p); 72 72 #if 0 73 pSetCoeff0(p, n_Add__T(pGetCoeff(bucket->buckets[i]), tn, r ));74 n_Delete__T(&tn, r );73 pSetCoeff0(p, n_Add__T(pGetCoeff(bucket->buckets[i]), tn, r->cf)); 74 n_Delete__T(&tn, r->cf); 75 75 #else 76 n_InpAdd__T(tn,pGetCoeff(bucket->buckets[i]), r );76 n_InpAdd__T(tn,pGetCoeff(bucket->buckets[i]), r->cf); 77 77 pSetCoeff0(p, tn); 78 78 #endif 79 79 p = bucket->buckets[i]; 80 80 pIter(bucket->buckets[i]); 81 n_Delete__T(&pGetCoeff(p), r );81 n_Delete__T(&pGetCoeff(p), r->cf); 82 82 p_FreeBinAddr(p, r); 83 83 (bucket->buckets_length[i])--; … … 88 88 } 89 89 p = bucket->buckets[j]; 90 if (j > 0 && n_IsZero__T(pGetCoeff(p), r ))90 if (j > 0 && n_IsZero__T(pGetCoeff(p), r->cf)) 91 91 { 92 n_Delete__T(&pGetCoeff(p), r );92 n_Delete__T(&pGetCoeff(p), r->cf); 93 93 pIter(bucket->buckets[j]); 94 94 p_FreeBinAddr(p, r); -
libpolys/polys/templates/pp_Mult_Coeff_mm_DivSelectMult__T.cc
r2675bd r5638b9 25 25 number n = pGetCoeff(m); 26 26 number nc; 27 pAssume(!n_IsZero__T(n,r ));27 pAssume(!n_IsZero__T(n,r->cf)); 28 28 29 29 spolyrec rp; … … 59 59 q = pNext(q); 60 60 nc = pGetCoeff(p); 61 pSetCoeff0(q, n_Mult__T(n, nc, r ));61 pSetCoeff0(q, n_Mult__T(n, nc, r->cf)); 62 62 p_MemSum__T(q->exp, p->exp, ab_e, length); 63 63 -
libpolys/polys/templates/pp_Mult_Coeff_mm_DivSelect__T.cc
r2675bd r5638b9 20 20 { 21 21 number n = pGetCoeff(m); 22 pAssume(!n_IsZero__T(n,r ));22 pAssume(!n_IsZero__T(n,r->cf)); 23 23 p_Test(p, r); 24 24 if (p == NULL) return NULL; … … 36 36 q = pNext(q); 37 37 number nc = pGetCoeff(p); 38 pSetCoeff0(q, n_Mult__T(n, nc, r ));38 pSetCoeff0(q, n_Mult__T(n, nc, r->cf)); 39 39 p_MemCopy__T(q->exp, p->exp, length); 40 40 } -
libpolys/polys/templates/pp_Mult_mm_Noether__T.cc
r2675bd r5638b9 36 36 DECLARE_ORDSGN(const long* ordsgn = ri->ordsgn); 37 37 const unsigned long* m_e = m->exp; 38 pAssume(!n_IsZero__T(ln,ri ));38 pAssume(!n_IsZero__T(ln,ri->cf)); 39 39 pAssume1(p_GetComp(m, ri) == 0 || p_MaxComp(p, ri) == 0); 40 40 int l = 0; … … 54 54 Continue: 55 55 56 n = n_Mult__T(ln, pGetCoeff(p), ri );56 n = n_Mult__T(ln, pGetCoeff(p), ri->cf); 57 57 58 58 #ifdef HAVE_RINGS 59 if(n_IsZero__T(n, ri ))59 if(n_IsZero__T(n, ri->cf)) 60 60 { 61 n_Delete__T(&n, ri );61 n_Delete__T(&n, ri->cf); 62 62 p_FreeBinAddr(r, ri); 63 63 } else -
libpolys/polys/templates/pp_Mult_mm__T.cc
r2675bd r5638b9 32 32 DECLARE_LENGTH(const unsigned long length = ri->ExpL_Size); 33 33 const unsigned long* m_e = m->exp; 34 pAssume(!n_IsZero__T(ln,ri ));34 pAssume(!n_IsZero__T(ln,ri->cf)); 35 35 pAssume1(p_GetComp(m, ri) == 0 || p_MaxComp(p, ri) == 0); 36 36 number tmp; … … 38 38 do 39 39 { 40 tmp = n_Mult__T(ln, pGetCoeff(p), ri );40 tmp = n_Mult__T(ln, pGetCoeff(p), ri->cf); 41 41 #ifdef HAVE_ZERODIVISORS 42 if (! n_IsZero__T(tmp, ri ))42 if (! n_IsZero__T(tmp, ri->cf)) 43 43 { 44 44 #endif … … 50 50 #ifdef HAVE_ZERODIVISORS 51 51 } 52 else n_Delete__T(&tmp, ri );52 else n_Delete__T(&tmp, ri->cf); 53 53 #endif 54 54 p = pNext(p); -
libpolys/polys/templates/pp_Mult_nn__T.cc
r2675bd r5638b9 17 17 LINKAGE poly pp_Mult_nn__T(poly p, const number n, const ring r) 18 18 { 19 pAssume(!n_IsZero__T(n,r ));19 pAssume(!n_IsZero__T(n,r->cf)); 20 20 p_Test(p, r); 21 21 if (p == NULL) return NULL; … … 34 34 pIter(q); 35 35 number nc = pGetCoeff(p); 36 pSetCoeff0(q, n_Mult__T(n, nc, r ));36 pSetCoeff0(q, n_Mult__T(n, nc, r->cf)); 37 37 p_MemCopy__T(q->exp, p->exp, length); 38 38 #else 39 39 number nc = pGetCoeff(p); 40 number tmp = n_Mult__T(n, nc, r );41 if (! n_IsZero__T(tmp,r ))40 number tmp = n_Mult__T(n, nc, r->cf); 41 if (! n_IsZero__T(tmp,r->cf)) 42 42 { 43 43 p_AllocBin(pNext(q), bin, r); … … 47 47 } 48 48 else 49 n_Delete__T(&tmp,r );49 n_Delete__T(&tmp,r->cf); 50 50 #endif 51 51 pIter(p);
Note: See TracChangeset
for help on using the changeset viewer.