eiggg2te.pas 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. program eiggg2te;
  2. uses
  3. typ,
  4. eig,
  5. iom;
  6. const
  7. m1 = -9;
  8. m2 = 5;
  9. n1 = -10;
  10. n2 = 8;
  11. n3 = -7;
  12. n4 = 6;
  13. var
  14. i, j, l, nex, k1, k2, i1, j1, i2, j2, n, term: ArbInt;
  15. a: array[m1..m2, n1..n2] of ArbFloat;
  16. b: array[m1..m2, n3..n4] of ArbFloat;
  17. lam: array[m1..m2] of ArbFloat;
  18. begin
  19. Write(' program results eiggg2te');
  20. case sizeof(ArbFloat) of
  21. 4: writeln('(single)');
  22. 6: writeln('(real)');
  23. 8: writeln('(double)');
  24. end;
  25. Read(nex);
  26. writeln;
  27. writeln('number of examples', nex: 2);
  28. writeln;
  29. for l := 1 to nex do
  30. begin
  31. writeln('example number', l: 2);
  32. writeln;
  33. Read(i1, j1, i2, j2, n, k1, k2);
  34. for i := 1 to n do
  35. for j := 1 to i do
  36. Read(a[i1 + i - 1, j1 + j - 1]);
  37. for i := 1 to n do
  38. for j := 1 to i do
  39. Read(b[i2 + i - 1, j2 + j - 1]);
  40. eiggg2(a[i1, j1], n, n2 - n1 + 1, k1, k2, b[i2, j2], n4 - n3 + 1,
  41. lam[i1 + k1 - 1], term);
  42. writeln;
  43. writeln('A=');
  44. writeln;
  45. for i := 1 to n do
  46. iomwrv(output, a[i1 + i - 1, j1], i, numdig);
  47. writeln;
  48. writeln('B=');
  49. writeln;
  50. for i := 1 to n do
  51. iomwrv(output, b[i2 + i - 1, j2], i, numdig);
  52. writeln;
  53. writeln('term=', term: 2);
  54. writeln;
  55. if term = 1 then
  56. begin
  57. writeln('lambda', k1: 2, ' t/m', k2: 2, ' = ');
  58. iomwrv(output, lam[i1 + k1 - 1], k2 - k1 + 1, numdig);
  59. end;
  60. writeln;
  61. writeln('-------------------------------------------');
  62. end;
  63. Close(input);
  64. Close(output);
  65. end.