123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- program sleglslt;
- uses
- typ,
- iom,
- sle;
- const
- mbov = 10;
- nbov = 8;
- type
- ar1n = array[1..nbov] of ArbFloat;
- var
- i, j, ii, m, n, k, nex, term: ArbInt;
- s: ArbFloat;
- p: array[1..mbov] of ^ar1n;
- b, e: array[1..mbov] of ArbFloat;
- x: array[1..nbov] of ArbFloat;
- begin
- Write(' program results sleglslt ');
- case sizeof(ArbFloat) of
- 4: writeln('(single)');
- 6: writeln('(real)');
- 8: writeln('(double)');
- end;
- Read(nex);
- writeln;
- writeln(' number of examples:', nex: 2);
- for ii := 1 to nex do
- begin
- Read(k, m, n);
- for i := k to m + k - 1 do
- begin
- getmem(p[i], n * sizeof(ArbFloat));
- iomrev(input, p[i]^[1], n);
- end;
- iomrev(input, b[k], m);
- sleglsl(p[k], m, n, b[k], x[k], term);
- writeln;
- writeln(' A =');
- for i := k to m + k - 1 do
- iomwrv(output, p[i]^[1], n, numdig);
- writeln;
- writeln(' b =');
- iomwrv(output, b[k], m, numdig);
- writeln;
- writeln('term=', term: 2);
- case term of
- 1:
- begin
- writeln;
- writeln(' x =');
- iomwrv(output, x[k], n, numdig);
- writeln;
- writeln('Ax - b =');
- for i := k to m + k - 1 do
- begin
- s := 0;
- for j := 1 to n do
- s := s + p[i]^[j] * x[j + k - 1];
- e[i] := s - b[i];
- end;
- iomwrv(output, e[k], m, numdig);
- end;
- 2: writeln(' A is (nearly) singular');
- 3: writeln('wrong input (m<n or n<1)');
- end;
- for i := m + k - 1 downto k do
- freemem(p[i], n * sizeof(ArbFloat));
- writeln(' --------------------------------------------------');
- end;
- end.
- program sleglslt;
- uses
- typ,
- iom,
- sle;
- const
- mbov = 10;
- nbov = 8;
- type
- ar1n = array[1..nbov] of ArbFloat;
- var
- i, j, ii, m, n, k, nex, term: ArbInt;
- s: ArbFloat;
- p: array[1..mbov] of ^ar1n;
- b, e: array[1..mbov] of ArbFloat;
- x: array[1..nbov] of ArbFloat;
- begin
- Write(' program results sleglslt ');
- case sizeof(ArbFloat) of
- 4: writeln('(single)');
- 6: writeln('(real)');
- 8: writeln('(double)');
- end;
- Read(nex);
- writeln;
- writeln(' number of examples:', nex: 2);
- for ii := 1 to nex do
- begin
- Read(k, m, n);
- for i := k to m + k - 1 do
- begin
- getmem(p[i], n * sizeof(ArbFloat));
- iomrev(input, p[i]^[1], n);
- end;
- iomrev(input, b[k], m);
- sleglsl(p[k], m, n, b[k], x[k], term);
- writeln;
- writeln(' A =');
- for i := k to m + k - 1 do
- iomwrv(output, p[i]^[1], n, numdig);
- writeln;
- writeln(' b =');
- iomwrv(output, b[k], m, numdig);
- writeln;
- writeln('term=', term: 2);
- case term of
- 1:
- begin
- writeln;
- writeln(' x =');
- iomwrv(output, x[k], n, numdig);
- writeln;
- writeln('Ax - b =');
- for i := k to m + k - 1 do
- begin
- s := 0;
- for j := 1 to n do
- s := s + p[i]^[j] * x[j + k - 1];
- e[i] := s - b[i];
- end;
- iomwrv(output, e[k], m, numdig);
- end;
- 2: writeln(' A is (nearly) singular');
- 3: writeln('wrong input (m<n or n<1)');
- end;
- for i := m + k - 1 downto k do
- freemem(p[i], n * sizeof(ArbFloat));
- writeln(' --------------------------------------------------');
- end;
- end.
|