12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- program detgpbte;
- {
- 1: 260
- 2: 64
- 3:
- }
- uses
- typ,
- iom,
- det;
- const
- pmin = -10;
- pmax = 100;
- var
- l, i, ind, rw, n, k, term, p, vb, nvb: ArbInt;
- f: ArbFloat;
- a: array[pmin..pmax] of ArbFloat;
- begin
- iom.npos := 1000; {max. width of output to 1000, since this is piped}
- Assign(input, ParamStr(1));
- reset(input);
- Assign(output, ParamStr(2));
- rewrite(output);
- Write(' program results detgpbte');
- 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: 3);
- for vb := 1 to nvb do
- begin
- writeln;
- writeln('example', vb: 2);
- Read(p, n, l);
- ind := p;
- writeln;
- writeln(' n=', n: 1, ' l=', l: 1);
- for i := 1 to n do
- begin
- if i <= l then
- rw := i
- else
- rw := l + 1;
- iomrev(input, a[ind], rw);
- Inc(ind, rw);
- end;
- detgpb(n, l, a[p], f, k, term);
- ind := p;
- writeln;
- writeln(' A (left-under) =');
- for i := 1 to n do
- begin
- if i <= l then
- rw := i
- else
- rw := l + 1;
- if i > l + 1 then
- Write('': (i - l - 1) * (numdig + 2));
- iomwrv(output, a[ind], rw, numdig);
- Inc(ind, rw);
- end;
- writeln;
- writeln('term=', term: 2);
- writeln;
- if term = 3 then
- writeln(' wrong input')
- else
- if term = 2 then
- writeln(' matrix not pos-def.')
- 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.
|