eigbs2te.pas 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. program eigbs2te;
  2. uses
  3. typ,
  4. iom,
  5. eig;
  6. const
  7. n1 = -100;
  8. n2 = 100;
  9. var
  10. ex, nex, nel, p, q, n, b, k1, k2, term: ArbInt;
  11. a: array[n1..n2] of ArbFloat;
  12. lam: array[n1..n2] of ArbFloat;
  13. begin
  14. Write(' program results eigbs2te');
  15. case sizeof(ArbFloat) of
  16. 4: writeln('(single)');
  17. 6: writeln('(real)');
  18. 8: writeln('(double)');
  19. end;
  20. Read(nex);
  21. writeln;
  22. writeln('number of examples', nex: 2);
  23. writeln;
  24. for ex := 1 to nex do
  25. begin
  26. writeln('example number', ex: 2);
  27. writeln;
  28. Read(p, q, n, b, k1, k2);
  29. nel := n * (b + 1) - (b * (b + 1)) div 2;
  30. iomrev(input, a[p], nel);
  31. eigbs2(a[p], n, b, k1, k2, lam[q], term);
  32. writeln(' A = ');
  33. iomwrv(output, a[p], nel, numdig);
  34. writeln;
  35. writeln('term=', term: 2);
  36. if term = 1 then
  37. begin
  38. writeln;
  39. writeln('lambda=');
  40. iomwrv(output, lam[q], k2 - k1 + 1, numdig);
  41. end
  42. else
  43. writeln(' wrong input');
  44. writeln;
  45. writeln('-------------------------------------------');
  46. end;
  47. Close(input);
  48. Close(output);
  49. end.