source: git/Tst/Short/mpsr_s.tst @ fe969a

spielwiese
Last change on this file since fe969a was c1d4a79, checked in by Hans Schönemann <hannes@…>, 16 years ago
*hannes: tst.lib git-svn-id: file:///usr/local/Singular/svn/trunk@10605 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.0 KB
Line 
1LIB "tst.lib";
2tst_init();
3LIB "general.lib";
4
5option(noredefine);
6
7proc 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
21proc 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
30proc checkdump(link l)
31{
32  rcheckdump(l, names());
33}
34
35// data
36int i;
37int i1 = 1;
38int i2 = -100092;
39
40intvec iv;
41intvec iv1 = 1,2,3;
42intvec iv2 = -1,2,-3,4,-5;
43
44intmat im;
45intmat im1[2][3]=1,3,5,7,8;
46intmat im2[3][3]= -1,2,-3,4,-5;
47
48string s;
49string s1 = "Hello World";
50
51list l;
52list l1 = i,iv,im,i1,iv1,im1;
53list l2 = l1, iv2, l, im2;
54
55ring r;
56
57poly p;
58number n;
59number n1 = 2;
60number n2 = -7;
61
62poly p1 = x + y;
63poly p2 = xyz - 2x3y4z5 + 3xy -4yz + 5z;
64poly p3 = p2^2;
65
66vector v;
67vector v1 = [p1, p2];
68vector v2 = [p, p1,p2, p3] + p1*gen(5);
69
70ideal id;
71ideal id1 = p, p1, p2, p3;
72ideal id2 = p, p1+p2, p2+3, p1+p2+p3, p1, p2, p3;
73
74module mv;
75module mv1 = v, v1, v2;
76module mv2 = v1+v2, p1*v2, p2*v1, v, v1, v2;
77
78matrix m;
79matrix m1[2][3] = p, p1, p2, id1;
80matrix m2[4][4] =  p, p1, p2, p3, id1, id2;
81
82ring rr = 32003,(a,b),dp;
83map f = r, a,b,a+b;
84map g   = rr,a2,b2;
85map phi = g(f);
86
87
88ring r0 = 0, x, lp;
89number n;
90number n1 = 29734481274863241234589;
91number n2 = n1/(n1-6);
92
93poly p;
94poly p1 = n1*x + n2*x^4 + 7/3*x^2*x^5 - 6;
95poly p2 = x*x*x - 2*x^3*x^4*x^5 + 3*x*x -4*x*x + 5*x^2 + p1;
96poly p3 = p2*p2;
97
98
99// First, make two (preserves order of variables) ASCII-dumps of everything
100dump(":w _dump.txt");
101killall();
102getdump("_dump.txt");
103
104// Does our version have MP?
105if (! (system("with", "MP")))
106{
107  // no -- so simply dump everything to stdout and exit
108  dump("");
109  $;
110}
111
112// Yes, so let's make an MPfile dump
113dump("MPfile: _dump.mp");
114killall();
115getdump("MPfile:r _dump.mp");
116
117// checkdump("MPfile: _dump.mp");
118
119// MPfork dump
120link ll = "MPtcp:fork";
121open(ll);
122if (status(ll, "openwrite", "yes"))
123{
124  write(ll, quote(getdump(mp_ll))); dump(ll); read(ll);
125  killall("not", "link");
126  write(ll, quote(dump(mp_ll))); getdump(ll); read(ll);
127
128  checkdump(ll);
129}
130kill ll;
131
132
133// MPlaunch dump
134string sing = system("Singular");
135
136if (size(sing))
137{
138  // check whether rsh works and whether remote Singular can be executed
139  if (system("sh","rsh `hostname` -n test -x "+sing+" 1>/dev/null 2>&1"))
140  {
141    if (system("sh","remsh `hostname` -n test -x "+sing+" 1>/dev/null 2>&1"))
142    {
143      if (system("sh","ssh `hostname` -f test -x "+sing+" 1>/dev/null 2>&1"))
144      {
145        sing = "";
146      }
147    }
148  }
149
150  if (size(sing))
151  {
152    link ll = "MPtcp:launch";
153    open(ll);
154    if (status(ll, "openwrite", "yes"))
155    {
156      kill sing;
157      write(ll, quote(getdump(mp_ll))); dump(ll); read(ll);
158      killall("not", "link");
159      write(ll, quote(dump(mp_ll))); getdump(ll); read(ll);
160
161      checkdump(ll);
162    }
163    close(ll);
164  }
165}
166
167if (defined(sing))
168{
169  kill sing;
170}
171tst_ignore(system("sh", "rm -rf _dump.*"));
172
173killall("proc");
174dump("");
175LIB "tst.lib";
176tst_status(1);$
Note: See TracBrowser for help on using the repository browser.