Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,60 @@
|
|||
$ include "seed7_05.s7i";
|
||||
include "float.s7i";
|
||||
include "math.s7i";
|
||||
|
||||
const type: matrix is array array float;
|
||||
|
||||
const func matrix: cholesky (in matrix: a) is func
|
||||
result
|
||||
var matrix: cholesky is 0 times 0 times 0.0;
|
||||
local
|
||||
var integer: i is 0;
|
||||
var integer: j is 0;
|
||||
var integer: k is 0;
|
||||
var float: sum is 0.0;
|
||||
begin
|
||||
cholesky := length(a) times length(a) times 0.0;
|
||||
for key i range cholesky do
|
||||
for j range 1 to i do
|
||||
sum := 0.0;
|
||||
for k range 1 to j do
|
||||
sum +:= cholesky[i][k] * cholesky[j][k];
|
||||
end for;
|
||||
if i = j then
|
||||
cholesky[i][i] := sqrt(a[i][i] - sum)
|
||||
else
|
||||
cholesky[i][j] := (a[i][j] - sum) / cholesky[j][j];
|
||||
end if;
|
||||
end for;
|
||||
end for;
|
||||
end func;
|
||||
|
||||
const proc: writeMat (in matrix: a) is func
|
||||
local
|
||||
var integer: i is 0;
|
||||
var float: num is 0.0;
|
||||
begin
|
||||
for key i range a do
|
||||
for num range a[i] do
|
||||
write(num digits 5 lpad 8);
|
||||
end for;
|
||||
writeln;
|
||||
end for;
|
||||
end func;
|
||||
|
||||
const matrix: m1 is [] (
|
||||
[] (25.0, 15.0, -5.0),
|
||||
[] (15.0, 18.0, 0.0),
|
||||
[] (-5.0, 0.0, 11.0));
|
||||
const matrix: m2 is [] (
|
||||
[] (18.0, 22.0, 54.0, 42.0),
|
||||
[] (22.0, 70.0, 86.0, 62.0),
|
||||
[] (54.0, 86.0, 174.0, 134.0),
|
||||
[] (42.0, 62.0, 134.0, 106.0));
|
||||
|
||||
const proc: main is func
|
||||
begin
|
||||
writeMat(cholesky(m1));
|
||||
writeln;
|
||||
writeMat(cholesky(m2));
|
||||
end func;
|
||||
Loading…
Add table
Add a link
Reference in a new issue