12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- program eigsv3te;
- uses
- typ,
- iom,
- omv,
- eig;
- const
- m1 = -4;
- m2 = 20;
- n1 = -5;
- n2 = 10;
- r1 = -3;
- r2 = 18;
- s1 = -2;
- s2 = 18;
- x1 = -5;
- x2 = 22;
- y1 = -3;
- y2 = 21;
- l1 = -2;
- l2 = 17;
- rwa = n2 - n1 + 1;
- rwu = s2 - s1 + 1;
- rwv = y2 - y1 + 1;
- var
- ex, nex, k, i, j, m, n, p, term, l, r, s, x, y: ArbInt;
- a, usvt, e: array[m1..m2, n1..n2] of ArbFloat;
- u, ut, utu, us: array[r1..r2, s1..s2] of ArbFloat;
- v, vt, vtv: array[x1..x2, y1..y2] of ArbFloat;
- q: array[l1..l2] of ArbFloat;
- begin
- Write(' program results eigsv3te');
- case sizeof(ArbFloat) of
- 4: writeln('(single)');
- 6: writeln('(real)');
- 8: writeln('(double)');
- end;
- Read(nex);
- writeln;
- writeln('number of examples', nex: 2);
- writeln;
- for ex := 1 to nex do
- begin
- writeln;
- writeln(' example number :', ex: 2);
- Read(k, p, l, r, s, x, y, m, n);
- iomrem(input, a[k, p], m, n, rwa);
- eigsv3(a[k, p], m, n, rwa, q[l], u[r, s], rwu, v[x, y], rwv, term);
- writeln;
- writeln(' a =');
- iomwrm(output, a[k, p], m, n, rwa, 17);
- writeln;
- writeln(' term=', term: 2);
- if term = 1 then
- begin
- writeln;
- writeln(' q =');
- iomwrv(output, q[l], n, numdig);
- writeln;
- writeln(' u =');
- iomwrm(output, u[r, s], m, n, rwu, numdig);
- writeln;
- writeln(' v =');
- iomwrm(output, v[x, y], n, n, rwv, numdig);
- writeln;
- writeln(' u(t) x u =');
- omvtrm(u[r, s], m, n, rwu, ut[r, s], rwu);
- omvmmm(ut[r, s], n, m, rwu, u[r, s], n, rwu, utu[r, s], rwu);
- iomwrm(output, utu[r, s], n, n, rwu, numdig);
- writeln;
- writeln(' v(t) x v =');
- omvtrm(v[x, y], n, n, rwv, vt[x, y], rwv);
- omvmmm(vt[x, y], n, n, rwv, v[x, y], n, rwv, vtv[x, y], rwv);
- iomwrm(output, vtv[x, y], n, n, rwv, numdig);
- writeln;
- writeln(' a - u x sigma x v(t) = ');
- for i := 1 to m do
- for j := 1 to n do
- us[r - 1 + i, s - 1 + j] := u[r - 1 + i, s - 1 + j] * q[l - 1 + j];
- omvmmm(us[r, s], m, n, rwu, vt[x, y], n, rwv, usvt[k, p], rwa);
- for i := 1 to m do
- for j := 1 to n do
- e[k - 1 + i, p - 1 + j] := a[k - 1 + i, p - 1 + j] - usvt[k - 1 + i, p - 1 + j];
- iomwrm(output, e[k, p], m, n, rwa, numdig);
- end;
- end;
- Close(input);
- Close(output);
- end.
|