[b35b93] | 1 | LIB "tst.lib"; |
---|
| 2 | tst_init(); |
---|
| 3 | LIB "general.lib"; |
---|
| 4 | |
---|
| 5 | option(noredefine); |
---|
| 6 | |
---|
| 7 | proc vcheckdump(link l, string vn) |
---|
| 8 | { |
---|
| 9 | if (typeof(`vn`) != "proc" && typeof(`vn`) != "link") |
---|
| 10 | { |
---|
| 11 | write(l, `vn`); |
---|
| 12 | read(l); |
---|
| 13 | if (typeof(`vn`) == "ring") |
---|
| 14 | { |
---|
| 15 | setring `vn`; |
---|
| 16 | rcheckdump(l, names(`vn`)); |
---|
| 17 | } |
---|
| 18 | } |
---|
| 19 | } |
---|
| 20 | |
---|
| 21 | proc rcheckdump(link l, list nameslist) |
---|
| 22 | { |
---|
| 23 | int i; |
---|
| 24 | for (i=1; i<size(nameslist); i++) |
---|
| 25 | { |
---|
| 26 | vcheckdump(l, nameslist[i]); |
---|
| 27 | } |
---|
| 28 | } |
---|
| 29 | |
---|
| 30 | proc checkdump(link l) |
---|
| 31 | { |
---|
| 32 | rcheckdump(l, names()); |
---|
| 33 | } |
---|
| 34 | |
---|
| 35 | // data |
---|
| 36 | int i; |
---|
| 37 | int i1 = 1; |
---|
| 38 | int i2 = -100092; |
---|
| 39 | |
---|
| 40 | intvec iv; |
---|
| 41 | intvec iv1 = 1,2,3; |
---|
| 42 | intvec iv2 = -1,2,-3,4,-5; |
---|
| 43 | |
---|
| 44 | intmat im; |
---|
| 45 | intmat im1[2][3]=1,3,5,7,8; |
---|
| 46 | intmat im2[3][3]= -1,2,-3,4,-5; |
---|
| 47 | |
---|
| 48 | string s; |
---|
| 49 | string s1 = "Hello World"; |
---|
| 50 | |
---|
| 51 | list l; |
---|
| 52 | list l1 = i,iv,im,i1,iv1,im1; |
---|
| 53 | list l2 = l1, iv2, l, im2; |
---|
| 54 | |
---|
| 55 | ring r; |
---|
| 56 | |
---|
| 57 | poly p; |
---|
| 58 | number n; |
---|
| 59 | number n1 = 2; |
---|
| 60 | number n2 = -7; |
---|
| 61 | |
---|
| 62 | poly p1 = x + y; |
---|
| 63 | poly p2 = xyz - 2x3y4z5 + 3xy -4yz + 5z; |
---|
| 64 | poly p3 = p2^4; |
---|
| 65 | |
---|
| 66 | vector v; |
---|
| 67 | vector v1 = [p1, p2]; |
---|
| 68 | vector v2 = [p, p1,p2, p3] + p1*gen(5); |
---|
| 69 | |
---|
| 70 | ideal id; |
---|
| 71 | ideal id1 = p, p1, p2, p3; |
---|
| 72 | ideal id2 = p, p1+p2, p2+3, p1+p2+p3, p1, p2, p3; |
---|
| 73 | |
---|
| 74 | module mv; |
---|
| 75 | module mv1 = v, v1, v2; |
---|
| 76 | module mv2 = v1+v2, p1*v2, p2*v1, v, v1, v2; |
---|
| 77 | |
---|
| 78 | matrix m; |
---|
| 79 | matrix m1[2][3] = p, p1, p2, id1; |
---|
| 80 | matrix m2[4][4] = p, p1, p2, p3, id1, id2; |
---|
| 81 | |
---|
| 82 | |
---|
| 83 | ideal j = std(id1); |
---|
| 84 | |
---|
| 85 | // the following does not work properly -- run it with Singularg and |
---|
| 86 | // you'll see what I mean -- debug it eventually !!! |
---|
| 87 | // qring q = j; |
---|
| 88 | poly p11 = x + y; |
---|
| 89 | poly p12 = xyz - 2x3y4z5 + 3xy -4yz + 5z; |
---|
| 90 | poly p13 = p12^4; |
---|
| 91 | |
---|
| 92 | ring rtm = 32003, (x,y,z,t), dp; |
---|
| 93 | ideal ex = t3y7z4 + 9x8 + 5t2x4y2 + 2t2xy2z3, |
---|
| 94 | 2t2x5y4+7txy6+9y8 + 2t2x2yz3, 3t4x2y3z2 + 9z8, 3x2y9 + |
---|
| 95 | y9 + 5x4; |
---|
| 96 | |
---|
| 97 | ring rt0 = 0, (x,y,z,t), dp; |
---|
| 98 | ideal ex = t3y7z4 + 9x8 + 5t2x4y2 + 2t2xy2z3, |
---|
| 99 | 2t2x5y4+7txy6+9y8 + 2t2x2yz3, 3t4x2y3z2 + 9z8, 3x2y9 + |
---|
| 100 | y9 + 5x4; |
---|
| 101 | |
---|
| 102 | |
---|
| 103 | ring rr = 32003,(a,b),dp; |
---|
| 104 | map f = r, a,b,a+b; |
---|
| 105 | map g = rr,a2,b2; |
---|
| 106 | map phi = g(f); |
---|
| 107 | |
---|
| 108 | |
---|
| 109 | ring r0 = 0, x, lp; |
---|
| 110 | number n; |
---|
| 111 | number n1 = 29734481274863241234589; |
---|
| 112 | number n2 = n1/(n1-6); |
---|
| 113 | |
---|
| 114 | poly p; |
---|
| 115 | poly p1 = n1*x + n2*x^4 + 7/3*x^2*x^5 - 6; |
---|
| 116 | poly p2 = x*x*x - 2*x^3*x^4*x^5 + 3*x*x -4*x*x + 5*x^2 + p1; |
---|
| 117 | poly p3 = p2*p2; |
---|
| 118 | |
---|
| 119 | vector v; |
---|
| 120 | vector v1 = [p1, p2]; |
---|
| 121 | vector v2 = [p, p1,p2, p3] + p1*gen(5); |
---|
| 122 | |
---|
| 123 | ideal id; |
---|
| 124 | ideal id1 = p, p1, p2, p3; |
---|
| 125 | ideal id2 = p, p1+p2, p2+3, p1+p2+p3, p1, p2, p3; |
---|
| 126 | |
---|
| 127 | module mv; |
---|
| 128 | module mv1 = v, v1, v2; |
---|
| 129 | module mv2 = v1+v2, p1*v2, p2*v1, v, v1, v2; |
---|
| 130 | |
---|
| 131 | matrix m; |
---|
| 132 | matrix m1[2][3] = p, p1, p2, id1; |
---|
| 133 | matrix m2[4][4] = p, p1, p2, p3, id1, id2; |
---|
| 134 | |
---|
| 135 | |
---|
| 136 | ring r1 = 0, x(1..10), ls; |
---|
| 137 | |
---|
| 138 | number n; |
---|
| 139 | number n1 = 29734481274863241234589; |
---|
| 140 | number n2 = n1/(n1-6); |
---|
| 141 | |
---|
| 142 | poly p; |
---|
| 143 | poly p1 = n1*x(1) + n2*x(5)^4 + 7/3*x(3)^2*x(4)^5 - 6; |
---|
| 144 | poly p2 = x(2)*x(5)*x(6) - 2*x(7)^3*x(8)^4*x(9)^5 + 3*x(1)*x(5) -4*x(5)*x(9) + |
---|
| 145 | 5*x(9)^2 + p1; |
---|
| 146 | poly p3 = p2*p2; |
---|
| 147 | |
---|
| 148 | vector v; |
---|
| 149 | vector v1 = [p1, p2]; |
---|
| 150 | vector v2 = [p, p1,p2, p3] + p1*gen(5); |
---|
| 151 | |
---|
| 152 | ideal id; |
---|
| 153 | ideal id1 = p, p1, p2, p3; |
---|
| 154 | ideal id2 = p, p1+p2, p2+3, p1+p2+p3, p1, p2, p3; |
---|
| 155 | |
---|
| 156 | module mv; |
---|
| 157 | module mv1 = v, v1, v2; |
---|
| 158 | module mv2 = v1+v2, p1*v1, v1-v2, v, v1, v2; |
---|
| 159 | |
---|
| 160 | matrix m; |
---|
| 161 | matrix m1[2][3] = p, p1, p2, id1; |
---|
| 162 | matrix m2[4][4] = p, p1, p2, p3, id1, id2; |
---|
| 163 | |
---|
| 164 | ring r2=10,(x(1..6)),(lp(2),dp(4)); |
---|
| 165 | number n; |
---|
| 166 | number n1 = 29734481274863241234589; |
---|
| 167 | number n2 = n1/(n1-6); |
---|
| 168 | |
---|
| 169 | poly p; |
---|
| 170 | poly p1 = n1*x(1) + n2*x(5)^4 + 7/3*x(3)^2*x(4)^5 - 6; |
---|
| 171 | poly p2 = x(2)*x(5)*x(6) - 2*x(1)^3*x(2)^4*x(3)^5 + 3*x(1)*x(5) -4*x(5)*x(3) + |
---|
| 172 | 5*x(3)^2 + p1; |
---|
| 173 | poly p3 = p2*p2; |
---|
| 174 | |
---|
| 175 | vector v; |
---|
| 176 | vector v1 = [p1, p2]; |
---|
| 177 | vector v2 = [p, p1,p2, p3] + p1*gen(5); |
---|
| 178 | |
---|
| 179 | ideal id; |
---|
| 180 | ideal id1 = p, p1, p2, p3; |
---|
| 181 | ideal id2 = p, p1+p2, p2+3, p1+p2+p3, p1, p2, p3; |
---|
| 182 | |
---|
| 183 | module mv; |
---|
| 184 | module mv1 = v, v1, v2; |
---|
| 185 | module mv2 = v1+v2, p1*v2, v1-v2, v, v1, v2; |
---|
| 186 | |
---|
| 187 | matrix m; |
---|
| 188 | matrix m1[2][3] = p, p1, p2, id1; |
---|
| 189 | matrix m2[4][4] = p, p1, p2, p3, id1, id2; |
---|
| 190 | |
---|
| 191 | ring r3=(7,a, b, c),(x,y,z),dp; |
---|
| 192 | number n; |
---|
| 193 | number n1 = 2*a^2*b*c -3*b*c + -1*a + 4; |
---|
| 194 | number n2 = n1 / (n1 - 5c)^2; |
---|
| 195 | |
---|
| 196 | poly p; |
---|
| 197 | poly p1 = x + y + a; |
---|
| 198 | poly p2 = 3*a^2*xyz*n1 - 2*n2*x3y4z5 + 3xy -4yz + n1*z; |
---|
| 199 | poly p3 = p2*p1; |
---|
| 200 | |
---|
| 201 | vector v; |
---|
| 202 | vector v1 = [p1, p2]; |
---|
| 203 | vector v2 = [p, p1,p2, p3] + p1*gen(5); |
---|
| 204 | |
---|
| 205 | ideal id; |
---|
| 206 | ideal id1 = p, p1, p2, p3; |
---|
| 207 | ideal id2 = p, p1+p2, p2+3, p1+p2+p3, p1, p2, p3; |
---|
| 208 | |
---|
| 209 | module mv; |
---|
| 210 | module mv1 = v, v1, v2; |
---|
| 211 | module mv2 = v1+v2, p1*v2, v1-v2, v, v1, v2; |
---|
| 212 | |
---|
| 213 | matrix m; |
---|
| 214 | matrix m1[2][3] = p, p1, p2, id1; |
---|
| 215 | matrix m2[4][4] = p, p1, p2, p3, id1, id2; |
---|
| 216 | |
---|
| 217 | ring r4=(7,a),(x,y,z),dp; |
---|
| 218 | minpoly=a^2+a+3; |
---|
| 219 | poly p; |
---|
| 220 | number n; |
---|
| 221 | number n1 = 2*a^2 + 3; |
---|
| 222 | number n2 = n1 / (n1 -5)^3; |
---|
| 223 | |
---|
| 224 | poly p1 = x + y + a; |
---|
| 225 | poly p2 = 3*a^2*xyz*n1 - 2*n2*x3y4z5 + 3xy -4yz + n1*z; |
---|
| 226 | poly p3 = p2^4; |
---|
| 227 | |
---|
| 228 | vector v; |
---|
| 229 | vector v1 = [p1, p2]; |
---|
| 230 | vector v2 = [p, p1,p2, p3] + p1*gen(5); |
---|
| 231 | |
---|
| 232 | ideal id; |
---|
| 233 | ideal id1 = p, p1, p2, p3; |
---|
| 234 | ideal id2 = p, p1+p2, p2+3, p1+p2+p3, p1, p2, p3; |
---|
| 235 | |
---|
| 236 | module mv; |
---|
| 237 | module mv1 = v, v1, v2; |
---|
| 238 | module mv2 = v1+v2, p1*v2, v1-v2, v, v1, v2; |
---|
| 239 | |
---|
| 240 | matrix m; |
---|
| 241 | matrix m1[2][3] = p, p1, p2, id1; |
---|
| 242 | matrix m2[4][4] = p, p1, p2, p3, id1, id2; |
---|
| 243 | |
---|
| 244 | ring r5=(49,a),(x,y,z),dp; |
---|
| 245 | poly p; |
---|
| 246 | number n; |
---|
| 247 | number n1 = 2*a^2 + 3; |
---|
| 248 | number n2 = n1 / (n1 -5)^3; |
---|
| 249 | |
---|
| 250 | poly p1 = x + y + a; |
---|
| 251 | poly p2 = 3*a^2*xyz*n1 - 2*n2*x3y4z5 + 3xy -4yz + n1*z; |
---|
| 252 | poly p3 = p2^4; |
---|
| 253 | |
---|
| 254 | vector v; |
---|
| 255 | vector v1 = [p1, p2]; |
---|
| 256 | vector v2 = [p, p1,p2, p3] + p1*gen(5); |
---|
| 257 | |
---|
| 258 | ideal id; |
---|
| 259 | ideal id1 = p, p1, p2, p3; |
---|
| 260 | ideal id2 = p, p1+p2, p2+3, p1+p2+p3, p1, p2, p3; |
---|
| 261 | |
---|
| 262 | module mv; |
---|
| 263 | module mv1 = v, v1, v2; |
---|
| 264 | module mv2 = v1+v2, p1*v2, v1-v2, v, v1, v2; |
---|
| 265 | |
---|
| 266 | matrix m; |
---|
| 267 | matrix m1[2][3] = p, p1, p2, id1; |
---|
| 268 | matrix m2[4][4] = p, p1, p2, p3, id1, id2; |
---|
| 269 | |
---|
| 270 | ring r6 = 32003, (x,y,z), wp(1,2,3); |
---|
| 271 | poly p = (xyz - 2x3y4z5 + 3xy -4yz + 5z + 2)^2; |
---|
| 272 | |
---|
| 273 | ring r7 = 32003, (x,y,z), Ws(1,2,3); |
---|
| 274 | poly p = (xyz - 2x3y4z5 + 3xy -4yz + 5z + 2)^2; |
---|
| 275 | |
---|
| 276 | ring r8 = 32003, (a,b,c,x,y,z), (dp(3), wp(1,2,3)); |
---|
| 277 | poly p = (xyzabc - 2x3y4z5a2b4c3 + 3xya2 -4yzb3c2 + 5zc + 2)^2; |
---|
| 278 | |
---|
| 279 | ring r9 = 32003, (a,b,c,x,y,z), (a(1,2,3,4,5),Dp(3), ds(3)); |
---|
| 280 | poly p = (xyzabc - 2x3y4z5a2b4c3 + 3xya2 -4yzb3c2 + 5zc + 2)^2; |
---|
| 281 | |
---|
| 282 | ring r10 = 32003, (x,y,z), M(1, 0, 0, 0, 1, 0, 0, 0, 1); |
---|
| 283 | poly p = (xyz - 2x3y4z5 + 3xy -4yz + 5z + 2)^2; |
---|
| 284 | |
---|
| 285 | ring r11 = 0, x(1..10), (lp(2), M(1, 2, 3, 1, 1, 1, 1, 0, 0), ds(2), ws(1,2,3)); |
---|
| 286 | poly p1 = x(1) + 123399456085/(123399456085 + 1)*x(5)^4 + 7/3*x(3)^2*x(4)^5 - 6; |
---|
| 287 | poly p2 = x(2)*x(5)*x(6) - 2*x(7)^3*x(8)^4*x(9)^5 + 3*x(1)*x(5) -4*x(5)*x(9) + |
---|
| 288 | 5*x(9)^2 + p1; |
---|
| 289 | |
---|
| 290 | ring r12 = 0, (x,y,z), (C,lp); |
---|
| 291 | vector v1 = [x+y2,z3+xy]; |
---|
| 292 | vector v2 = [x,x,x]; |
---|
| 293 | |
---|
| 294 | ring r13 = 0, (x,y,z), (lp,c); |
---|
| 295 | vector v1 = [x+y2,z3+xy]; |
---|
| 296 | vector v2 = [x,x,x]; |
---|
| 297 | |
---|
| 298 | ring r14 = 0, (x,y,z), (c,lp); |
---|
| 299 | vector v1 = [x+y2,z3+xy]; |
---|
| 300 | vector v2 = [x,x,x]; |
---|
| 301 | |
---|
| 302 | // First, make ASCII-dump of everything |
---|
| 303 | dump(":w _dump.txt"); |
---|
| 304 | killall(); |
---|
| 305 | getdump("_dump.txt"); |
---|
| 306 | |
---|
| 307 | // Does our version have MP? |
---|
| 308 | if (! (system("with", "MP"))) |
---|
| 309 | { |
---|
| 310 | // no -- so simply dump everything to stdout and exit |
---|
| 311 | dump(""); |
---|
| 312 | $; |
---|
| 313 | } |
---|
| 314 | |
---|
| 315 | // Yes, so let's make an MPfile dump |
---|
| 316 | dump("MPfile: _dump.mp"); |
---|
| 317 | killall(); |
---|
| 318 | getdump("MPfile:r _dump.mp"); |
---|
| 319 | |
---|
| 320 | // checkdump("MPfile: _dump.mp"); |
---|
| 321 | |
---|
| 322 | // MPfork dump |
---|
| 323 | link ll = "MPtcp:fork"; |
---|
| 324 | open(ll); |
---|
| 325 | if (status(ll, "openwrite", "yes")) |
---|
| 326 | { |
---|
[6e2a22] | 327 | write(ll, quote(getdump(link_ll))); dump(ll); read(ll); |
---|
[b35b93] | 328 | killall("not", "link"); |
---|
[6e2a22] | 329 | write(ll, quote(dump(link_ll))); getdump(ll); read(ll); |
---|
[b35b93] | 330 | |
---|
| 331 | checkdump(ll); |
---|
| 332 | } |
---|
| 333 | kill ll; |
---|
| 334 | |
---|
| 335 | |
---|
| 336 | // MPlaunch dump |
---|
[556e57] | 337 | string sing = system("Singular"); |
---|
[b35b93] | 338 | |
---|
| 339 | if (size(sing)) |
---|
| 340 | { |
---|
| 341 | // check whether rsh works and whether remote Singular can be executed |
---|
| 342 | if (system("sh","rsh `hostname` -n test -x "+sing+" 1>/dev/null 2>&1")) |
---|
| 343 | { |
---|
| 344 | if (system("sh","remsh `hostname` -n test -x "+sing+" 1>/dev/null 2>&1")) |
---|
| 345 | { |
---|
| 346 | if (system("sh","ssh `hostname` -f test -x "+sing+" 1>/dev/null 2>&1")) |
---|
| 347 | { |
---|
| 348 | sing = ""; |
---|
| 349 | } |
---|
| 350 | } |
---|
| 351 | } |
---|
| 352 | |
---|
| 353 | if (size(sing)) |
---|
| 354 | { |
---|
| 355 | link ll = "MPtcp:launch"; |
---|
| 356 | open(ll); |
---|
| 357 | if (status(ll, "openwrite", "yes")) |
---|
| 358 | { |
---|
| 359 | kill sing; |
---|
[6e2a22] | 360 | write(ll, quote(getdump(link_ll))); dump(ll); read(ll); |
---|
[b35b93] | 361 | killall("not", "link"); |
---|
[6e2a22] | 362 | write(ll, quote(dump(link_ll))); getdump(ll); read(ll); |
---|
[b35b93] | 363 | |
---|
| 364 | checkdump(ll); |
---|
| 365 | } |
---|
[e48ffd7] | 366 | close(ll); |
---|
[b35b93] | 367 | } |
---|
| 368 | } |
---|
| 369 | |
---|
| 370 | if (defined(sing)) |
---|
| 371 | { |
---|
| 372 | kill sing; |
---|
| 373 | } |
---|
| 374 | tst_ignore(system("sh", "rm -rf _dump.*")); |
---|
| 375 | |
---|
| 376 | killall("proc"); |
---|
| 377 | dump(""); |
---|
[46976a6] | 378 | tst_status(1);$ |
---|
[b35b93] | 379 | |
---|
| 380 | |
---|
| 381 | |
---|
| 382 | |
---|