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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
program detgtrte;
uses
typ,
iom,
det;
const
c1 = -10;
c2 = 10;
var
k, p, n, term, vb, nvb: ArbInt;
l, d, u: array[c1..c2] of ArbFloat;
f: ArbFloat;
begin
iom.npos := 1000; {max. width of output to 1000, since this is piped}
Write(' program results detgtrte');
case sizeof(ArbFloat) of
4: writeln('(single)');
6: writeln('(real)');
8: writeln('(double)');
10: writeln('(Extended)');
end;
Read(nvb);
writeln;
writeln(' number of examples:', nvb: 4);
for vb := 1 to nvb do
begin
writeln;
writeln('example nr', vb: 2);
Read(p, n);
writeln;
writeln(' n=', n: 2);
iomrev(input, l[p + 1], n - 1);
iomrev(input, d[p], n);
iomrev(input, u[p], n - 1);
detgtr(n, l[p + 1], d[p], u[p], f, k, term);
writeln;
writeln('lower diagonal of A =');
iomwrv(output, l[p + 1], n - 1, numdig);
writeln;
writeln('diagonal of A =');
iomwrv(output, d[p], n, numdig);
writeln;
writeln('upper diagonal of A =');
iomwrv(output, u[p], n - 1, numdig);
writeln;
writeln('term=', term: 2);
writeln;
if term = 3 then
writeln(' wrong input')
else
begin
Write(' determinant of A =', f: numdig);
if k <> 0 then
Write(' * 8**', k: 3);
writeln;
end; {term=1}
writeln('----------------------------------------------------');
end; {vb}
Close(input);
Close(output);
end.
program detgtrte;
uses
typ,
iom,
det;
const
c1 = -10;
c2 = 10;
var
k, p, n, term, vb, nvb: ArbInt;
l, d, u: array[c1..c2] of ArbFloat;
f: ArbFloat;
begin
iom.npos := 1000; {max. width of output to 1000, since this is piped}
Write(' program results detgtrte');
case sizeof(ArbFloat) of
4: writeln('(single)');
6: writeln('(real)');
8: writeln('(double)');
10: writeln('(Extended)');
end;
Read(nvb);
writeln;
writeln(' number of examples:', nvb: 4);
for vb := 1 to nvb do
begin
writeln;
writeln('example nr', vb: 2);
Read(p, n);
writeln;
writeln(' n=', n: 2);
iomrev(input, l[p + 1], n - 1);
iomrev(input, d[p], n);
iomrev(input, u[p], n - 1);
detgtr(n, l[p + 1], d[p], u[p], f, k, term);
writeln;
writeln('lower diagonal of A =');
iomwrv(output, l[p + 1], n - 1, numdig);
writeln;
writeln('diagonal of A =');
iomwrv(output, d[p], n, numdig);
writeln;
writeln('upper diagonal of A =');
iomwrv(output, u[p], n - 1, numdig);
writeln;
writeln('term=', term: 2);
writeln;
if term = 3 then
writeln(' wrong input')
else
begin
Write(' determinant of A =', f: numdig);
if k <> 0 then
Write(' * 8**', k: 3);
writeln;
end; {term=1}
writeln('----------------------------------------------------');
end; {vb}
Close(input);
Close(output);
end.
|