summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/numlib/tests/roopolte.pas
blob: 567a909ef3f33ff7c7c2854b9a4b2e5f9b90fd20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
program roopolte;

uses
  typ,
  roo;

const
  nn = 30;
var
  i, j, num, n, k, term: ArbInt;
  a: array[1..nn] of ArbFloat;
  z: array[1..nn] of complex;
begin
  Write(' program results roopolte');
  case sizeof(ArbFloat) of
    4: writeln('(single)');
    6: writeln('(real)');
    8: writeln('(double)');
  end;
  Read(num);
  writeln;
  writeln(' number of examples:', num: 3);
  for i := 1 to num do
  begin
    Read(n);
    writeln;
    writeln('n =', n: 2);
    writeln;
    writeln(' j    a[j]');
    writeln;
    for j := 1 to n do
    begin
      Read(a[j]);
      writeln(j: 2, ' ': 2, a[j]: numdig);
    end; {j}
    roopol(a[1], n, z[1], k, term);
    writeln;
    Write('term =', term: 2);
    if term = 1 then
    begin
      writeln('  k =', k: 2);
      writeln;
      writeln(' j', ' ': 4, 'Re(z[j])', ' ': 11, 'Im(z[j])');
      writeln;
      for j := 1 to k do
        writeln(j: 2, ' ': 2, z[j].Re: numdig, ' ': 2, z[j].imag: numdig);
    end; {term=1}
  end; {i}
  Close(input);
  Close(output);
end.
program roopolte;

uses
  typ,
  roo;

const
  nn = 30;
var
  i, j, num, n, k, term: ArbInt;
  a: array[1..nn] of ArbFloat;
  z: array[1..nn] of complex;
begin
  Write(' program results roopolte');
  case sizeof(ArbFloat) of
    4: writeln('(single)');
    6: writeln('(real)');
    8: writeln('(double)');
  end;
  Read(num);
  writeln;
  writeln(' number of examples:', num: 3);
  for i := 1 to num do
  begin
    Read(n);
    writeln;
    writeln('n =', n: 2);
    writeln;
    writeln(' j    a[j]');
    writeln;
    for j := 1 to n do
    begin
      Read(a[j]);
      writeln(j: 2, ' ': 2, a[j]: numdig);
    end; {j}
    roopol(a[1], n, z[1], k, term);
    writeln;
    Write('term =', term: 2);
    if term = 1 then
    begin
      writeln('  k =', k: 2);
      writeln;
      writeln(' j', ' ': 4, 'Re(z[j])', ' ': 11, 'Im(z[j])');
      writeln;
      for j := 1 to k do
        writeln(j: 2, ' ': 2, z[j].Re: numdig, ' ': 2, z[j].imag: numdig);
    end; {term=1}
  end; {i}
  Close(input);
  Close(output);
end.